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!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.