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

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

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

proc print ;

  where not (COLL_DT < REC_DT < RESULT_DT);

  var id COLL_DT REC_DT RESULT_DT;

run;

View solution in original post

4 REPLIES 4
Tom
Super User Tom
Super User

proc print ;

  where not (COLL_DT < REC_DT < RESULT_DT);

  var id COLL_DT REC_DT RESULT_DT;

run;

User123
Calcite | Level 5

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

Tom
Super User Tom
Super User

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;

art297
Opal | Level 21

Same difference:

data want ;

   set have ( where=( not (COLL_DT < REC_DT < RESULT_DT)));

run;

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

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