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 lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.