sniperhgy 发表于 2014-10-29 10:43 
楼主你好,&Ndat.3里的那个点代表了Ndat宏变量解析的结束,如果不加的话,SAS会把Ndat3整个当成一个宏变量 ...
%put data=&Ndat.3;
%checkvar(dsn=&Ndat.3, var=ym);
proc sort data=&Ndat.3 ;by stkcd year ym;run;
%if &i=1 %then %do;
data almktscore; set &Ndat.3; run;
%end;
%else %do;
%if &rc=1 %then %do;
data almktscore;
merge almktscore &Ndat.3;
by stkcd year ym;
run;
%end;
%else %do;
data almktscore;
merge almktscore &Ndat.3;
by stkcd year ;
run;
%end;
%end;