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

How can i use macro with if, else, end statement, if i want to just start sql if the condition is true.

 

I wanna just use if statement, so if today()= date column from my table, and if this is true, then run this sql:

 

create table work.filtered_data AS
select *
from xxx

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26
data _null_;
    set have;
    if date=today() then call symputx('start',1);
    else call symputx('start',0);
run;
%if &start=1 %then %do;
    proc sql;
         ...
    quit;
%end;

Works in SAS 9.4M5 and later.

--
Paige Miller

View solution in original post

4 REPLIES 4
Kurt_Bremser
Super User

So you have a date variable in a dataset. Will this variable contain only a single distinct value in all observations, or different dates?

Pato485
Calcite | Level 5

just one, it is just one exact date in every month (but not same every month) when i need to start macro. But it is just one value in dataset everytime.

PaigeMiller
Diamond | Level 26
data _null_;
    set have;
    if date=today() then call symputx('start',1);
    else call symputx('start',0);
run;
%if &start=1 %then %do;
    proc sql;
         ...
    quit;
%end;

Works in SAS 9.4M5 and later.

--
Paige Miller
Pato485
Calcite | Level 5
Thanks for solution.

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

Creating Custom Steps in SAS Studio

Check out this tutorial series to learn how to build your own steps in SAS Studio.

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
  • 4 replies
  • 1428 views
  • 0 likes
  • 3 in conversation