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

This is my first post so apologies for any faux pas...

I want to create a dataset using a DATA step in a macro. In the dataset I use a WHERE step, which I want to be dependent on the macro variable (TABLE).

So I've written the following but it doesn't work. It just takes it as "...WHERE FINANCIAL_ID IN (5);..."

I've tried many different things with this but can't get it to work... Any ideas would be most welcome.

%MACRO LOSSES(TABLE);

DATA INS_RSK_&TABLE;

  SET INS_RSK_S;

  WHERE FINANCIAL_ID IN (5, %IF &TABLE="LN" %THEN %DO; %PUT %STR(,9); %END;);

RUN;

%MEND;

Thank you very much.

1 ACCEPTED SOLUTION

Accepted Solutions
Fraktalnisse
SAS Employee

Maybe this example can help you:

%macro test(var);
data table;
   set sashelp.class;
   where age in (12 %if &var=fourteen %then ,14 ;  );
run;
%mend;

%test(fourteen)
%test(notfourteen)

View solution in original post

2 REPLIES 2
Fraktalnisse
SAS Employee

Maybe this example can help you:

%macro test(var);
data table;
   set sashelp.class;
   where age in (12 %if &var=fourteen %then ,14 ;  );
run;
%mend;

%test(fourteen)
%test(notfourteen)

feyzi
Calcite | Level 5

Thank you very much!

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
  • 2 replies
  • 1688 views
  • 0 likes
  • 2 in conversation