BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
scb
Obsidian | Level 7 scb
Obsidian | Level 7

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;

1 ACCEPTED SOLUTION

Accepted Solutions
RW9
Diamond | Level 26 RW9
Diamond | Level 26

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;

View solution in original post

1 REPLY 1
RW9
Diamond | Level 26 RW9
Diamond | Level 26

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;
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 963 views
  • 0 likes
  • 2 in conversation