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!!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.