BookmarkSubscribeRSS Feed
dad316
Calcite | Level 5

I have a table that contains order ID numbers.

When an order is updated, the observation for that order isn't updated. Instead, a new observation is inserted into the dataset so there would be two observations for a single order.

 

There is a variable that identifies the iteration of the observation for a particular order ID. So, the initial order will be iteration 1. If an order is updated, there will be a 2nd record that that order where the iteration number is 2. 


How would I query this table to return only observations with the highest iteration number for a each order id?

4 REPLIES 4
novinosrin
Tourmaline | Level 20

Well, wouldn't you be wanting to query and filer on getting max of the dates for the order id's? To me this makes sense to get the latest inserted row considering the latest insert would have the most recent date, right?

dad316
Calcite | Level 5

Hi  novinosrin

 

PaigeMiller
Diamond | Level 26

UNTESTED CODE

 

proc sql;
    create table want as select * from have group by order_id having iteration_number=max(iteration_number);
quit;
--
Paige Miller
dad316
Calcite | Level 5

Hmm, i think this will work actually. I'll test it and get back to you in a bit

SAS Innovate 2025: Call for Content

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!

Submit your idea!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 4 replies
  • 896 views
  • 0 likes
  • 3 in conversation