I tried to run the below codes but it won't execute, anyone can help? Many thanks.
data test;
input rptinput $;
cards;
Report1
;
run;
proc sql noprint;
select distinct rptinput
into :REPORT separated by ''
from test;
quit;
%put &report;
%macro condtest;
%if &report eq "Report1" %then %do;
proc sql;
select * from Sashelp.shoes;
%end;
%else %if &report eq "Report2" %then %do;
proc sql;
select * from Sashelp.cars;
;
%end;
%mend condtest;
quit;
%condtest
quit;
Format your code and you will note where additional things are not needed. The cause of your issue is that the macro call is not finished with a ; - always ensure you finish things correctly, end of statemetns with semi colon, end of macro variables with a dot etc.
data test;
input rptinput $;
cards;
Report1
;
run;
proc sql noprint;
select distinct rptinput
into :REPORT separated by ''
from test;
quit;
%macro condtest;
proc sql;
%if "&report." eq "Report1" %then %do;
select * from Sashelp.shoes;
%end;
%else %if "&report." eq "Report2" %then %do;
select * from Sashelp.cars;
%end;
quit;
%mend condtest;
%condtest;
Format your code and you will note where additional things are not needed. The cause of your issue is that the macro call is not finished with a ; - always ensure you finish things correctly, end of statemetns with semi colon, end of macro variables with a dot etc.
data test;
input rptinput $;
cards;
Report1
;
run;
proc sql noprint;
select distinct rptinput
into :REPORT separated by ''
from test;
quit;
%macro condtest;
proc sql;
%if "&report." eq "Report1" %then %do;
select * from Sashelp.shoes;
%end;
%else %if "&report." eq "Report2" %then %do;
select * from Sashelp.cars;
%end;
quit;
%mend condtest;
%condtest;
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!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.