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 your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.
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.