Your picture didn't make it.
You have several data sets involved. So it really isn't possible to tell what might cause your issue without good samples from each. Or possibly the Proc Contents output for both sets.
Your BDM_hist data set will have the columns in the order they appear in rladv.bdm_hist with any variables that may be in the B1 set at the right. If you reverse the order of the data sets on the SET statement then the order will be that of B1 with any additional variables from the other set.
Why is order of variables ( columns) an issue? For any output that requires a specific output you can use code to write in the order desired.
You have to really show examples of the output "not in English". You might have an issue with the character set for some of the data.
Your last data step means that you have completely replaced one of the existing data sets and the code can't be rerun to see what maybe could have happened.
data rladv.bdm_hist (compress = yes);
set bdm_hist;
run;
If the data sets are supposed to have the same variables of the same type you might consider using Proc Append instead of data step with a Set statement. It may run faster and will give some warnings about inconsistent data such as different variable names or lengths of variables.
... View more