Hi,
I am trying to use macro to do a one year forward performance track for the origination period 201202 - 201207. So if the origination month is 201202, i will track the month from 201202 to 201301 to see how origination performs. After I run the code, there is warning ' This SAS global statement is not support in proc sql' which causes my proc sql not working properly.
%macro monthly (first,last);
%do mon=&first &to &last;
%let monthend=%eval(&mon+99);
proc sql;
create table test&mon as
select*
from aaa_&mon as a left join master_file
on num=num;
where &mon<=YEAR_MONTH<=&monthend;
quit;
%end;
%mend monthly;
%monthly(201202,201207);
Have any idea what causes the warning?
Thanks in advance!
Frank
I believe the %do block is not correct, you have used &to instead of %to. Please check and change it to %to.
also remove the semicolon after num=num; i.e., before the where clause.
Please check the updated code below
%macro monthly (first,last);
%do mon=&first %to &last;
%let monthend=%eval(&mon+99);
proc sql;
create table test&mon as
select*
from aaa_&mon as a left join master_file as b
on a.num=b.num
where &mon<=YEAR_MONTH<=&monthend;
quit;
%end;
%mend monthly;
%monthly(201202,201207);
Thanks,
Jagadish
I believe the %do block is not correct, you have used &to instead of %to. Please check and change it to %to.
also remove the semicolon after num=num; i.e., before the where clause.
Please check the updated code below
%macro monthly (first,last);
%do mon=&first %to &last;
%let monthend=%eval(&mon+99);
proc sql;
create table test&mon as
select*
from aaa_&mon as a left join master_file as b
on a.num=b.num
where &mon<=YEAR_MONTH<=&monthend;
quit;
%end;
%mend monthly;
%monthly(201202,201207);
Thanks,
Jagadish
Thanks so much. It works now!
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.