@BIDD wrote:
Hello All,
Just tried this way using Macro, it worked for me.
I am happy to learn, if there is any other ways to do it.
way comparing to this.
You would be better off putting the required sort into the merge macro instead of requiring two different macro calls prior to the merge call. If you must have a macro to sort the data then use only one and call twice with the two data sources.
%MACRO MSORT1(DATASET,VAR);
PROC SORT DATA=&DATASET;
BY &VAR;
RUN;
%MEND MSORT1;
%MACRO MMERGE1(DEST,SOURCE1,SOURCE2,VAR,COND);
%msort1(&source1, &var);
%msort1(&source2, &var);
DATA &DEST;
MERGE &SOURCE1 (IN=X) &SOURCE2 (IN=Y);
BY &VAR;
&COND;
RUN;
%MEND MMERGE1;
%MMERGE1(WORK.CRASH_UNITS_CHECK5,WORK.CRASHES,WORK.UNITS,ACC_NO,IF X=1);
You may have difficulties with your Cond parameter as some things you put into an IF (or any other statement) may cause issues with the macro processor. For instance a comma as part of Cond will cause a "too many parameters found" error, or () will cause other errors. You may have to use macro quoting functions to pass code statements.
... View more