I want to use a macro variable in a WHERE condition in a PROC SQL, but I need to to be evaluated as a number because Var3 below is numeric.
%let horizon=201606:
PROC SQL;
CREATE TABLE CTX AS
SELECT Variables
FROM Table1 T1
LEFT JOIN Table2 T2 ON (T1.Var1=T2.Var1)
WHERE T2.Var3 le %EVAL(put(&Horizon.,6.));
QUIT;
How can I go about this?
Macro variables are text not really char/numeric. They do literal text replacement.
The following will work:
Where t2.var3 LE &horizon;
If it doesn't work you may have a type mismatch and most likely var3 is numeric with a date format?
Macro variables are text not really char/numeric. They do literal text replacement.
The following will work:
Where t2.var3 LE &horizon;
If it doesn't work you may have a type mismatch and most likely var3 is numeric with a date format?
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.