I'm trying to understand the WHERE clause below and I want to tweak the where clause to include the condition
put(INITIAL_DT,yymmn6.) <= put(REPORTING_DT,yymmn6.) only when REPORTING_METHOD ^="ACS"
If REPORTING_METHOD ="OCS" then I want to include this condition put(INITIAL_DT,yymmn6.) >= put(REPORTING_DT,yymmn6.)
data test;
set IFR.ADS_OUTPUT;
where (REPORTING_METHOD ^="ACS" or put(INITIAL_DT,yymmn6.) <= put(REPORTING_DT,yymmn6.))
&
(REPORTING_METHOD ^="OCS" or put(INITIAL_DT,yymmn6.) >= put(REPORTING_DT,yymmn6.));
run;
I want to tackle this logic only using WHERE clause. Any help?
You've got your "and" and "or" wrong. According to your description, the condition should be
where
REPORTING_METHOD ^= "ACS" and put(INITIAL_DT,yymmn6.) <= put(REPORTING_DT,yymmn6.)
or
REPORTING_METHOD ^= "OCS" and put(INITIAL_DT,yymmn6.) >= put(REPORTING_DT,yymmn6.)
;
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.