When performing a query loop on a Proc SQL statement, is there any way to print the macro variables within the log for each iteration?
%macro queryloop;
%do m = 1 %to 2; /* month */
%do r = 1 %to 8; /* regions */
proc sql;
connect to odbc;
%if &m * &r = 1 %then create table C.Table as
%else insert into C.Table;
Select and Where Statement here
quit;
%end;
%end;
%mend;
I am hoping to print the value of m*r in the log as the code loops through. Is this possible?
Thanks,
Srikar
Use a %PUT statement.
%macro queryloop;
proc sql;
connect to odbc;
%do m = 1 %to 2; /* month */
%do r = 1 %to 8; /* regions */
%put M=&m R=&r M*R=%eval(&m * &r) ;
%if &m * &r = 1 %then create table C.Table as ;
%else insert into C.Table;
... Select and Where Statement here ...
;
%end;
%end;
quit;
%mend queryloop;
Use a %PUT statement.
%macro queryloop;
proc sql;
connect to odbc;
%do m = 1 %to 2; /* month */
%do r = 1 %to 8; /* regions */
%put M=&m R=&r M*R=%eval(&m * &r) ;
%if &m * &r = 1 %then create table C.Table as ;
%else insert into C.Table;
... Select and Where Statement here ...
;
%end;
%end;
quit;
%mend queryloop;
Thank you!!
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.