%macro test();
%do i=2016 to 2018;
%do j=1 to 12;
%let yyyymm=i*100+j;
%if &yyyymm.<=201801 and &yyyymm.>=201609 %then %do; *限定需要獲取數據的時間;
data events_&yyyymm.;
set lib.events_&yyyymm.(keep=var0--var10);
length ratio 8.;
if var10 ^= 0 then ratio=var9/var10;
else ratio=.;
run;
proc sql noprint;
create events_temp_&yyyymm. as
select *
from events_&yyyymm.
where var0 in (select id from lib.test); *若lib.test很大,最合理應該使用merge;
quit;
%end;
%end;
%end;
data events_all;
set events_temp_:; *匯總全部處理過的交易表;
run;
%mend test;