%macro cmp_vars(adsn=, bdsn=, outdsn=cmp_vars); proc contents data=&adsn out=adsn_vars noprint; run; proc contents data=&bdsn out=bdsn_vars noprint; run; data adsn_vars; set adsn_vars; name=upcase(name); run; data bdsn_vars; set bdsn_vars; name=upcase(name); run; proc sort data=adsn_vars; by name; run; proc sort data=bdsn_vars; by name; run; data &outdsn; length comments $200; merge adsn_vars(in=a) bdsn_vars(in=b); by name; if a and ^b then comments="Not in &bdsn"; else if ^a and b then comments="Not in &adsn"; run; proc sort data=&outdsn; by comments; run; %mend cmp_vars; %cmp_vars(adsn=adam.adexsum, bdsn=qc_adexsum); /* *** Another version of same check ****; proc compare base=asl1 compare=asl2 listvars noobs; id usubjid; run; */