Desktop productivity for business analysts and programmers

Printing macro variables

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 9
Accepted Solution

Printing macro variables

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


Accepted Solutions
Solution
‎12-31-2012 12:07 PM
Super User
Super User
Posts: 6,848

Re: Printing macro variables

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;

View solution in original post


All Replies
Solution
‎12-31-2012 12:07 PM
Super User
Super User
Posts: 6,848

Re: Printing macro variables

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;

Occasional Contributor
Posts: 9

Re: Printing macro variables

Thank you!!

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 225 views
  • 0 likes
  • 2 in conversation