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!!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.