Hi All-
Wondering how to code the following scenario in SAS.
Ideally all the rows in the table should pass the below criteria for the 3 dates.
COLL_DT < REC_DT < RESULT_DT.
I now want to create a list of ppl on whom the above criteria is not met.
BOB
proc print ;
where not (COLL_DT < REC_DT < RESULT_DT);
var id COLL_DT REC_DT RESULT_DT;
run;
proc print ;
where not (COLL_DT < REC_DT < RESULT_DT);
var id COLL_DT REC_DT RESULT_DT;
run;
Tom -
Thanks on your promp reply. I want the output into a dataset as I need to merge later. I think the same WHERE statment in PROC SQL can get me into a dataset. But wondering if there is an approch in Datastep that does that for me.
Bob
It is really no different.
data want;
set have;
where not (COLL_DT < REC_DT < RESULT_DT);
run;
If you need to limit it to one record per person/item/whatever then you might want something like:
data want;
set have;
where not (COLL_DT < REC_DT < RESULT_DT);
by id;
if first.id;
keep id;
run;
Same difference:
data want ;
set have ( where=( not (COLL_DT < REC_DT < RESULT_DT)));
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.