Hi all, I'm not a very advanced SAS user and only use pretty basic coding. But now I need to use do loop to meet certain criteria. Specifically, I have a list of customers which are identified by their cus_id. Each customer has their purchase history during a month, with purchase dates and purchase amounts. Now I want to identify the purchase date on which each customer has reached or gone beyond $100 purchase amount. Data is as below: cust_id purch_dt purch_amt 1 1/1 100 1 1/3 30 1 1/29 200 2 1/5 20 2 1/15 65 2 1/30 190 2 1/31 10 ... For cust_id=1, I want to pick out 1/1, as that's the date when cust_id=1 made total purchase of 100 and thus meets the criteria of "reach or beyond 100". For cust_id=2, I want to pick out 1/30 for that's the date cust_id=2 made total purchase of 275 and thus beyond 100... After researching online, I found that I probably would need to use "if...then...else...then...end" and "do until" statements. I've composed a piece of code in SAS, but it has been running for 2 hours so there must be something wrong. data x; set y; by cust_id purch_dt; retain cust_id purch_dt purch_amt; if fist.cust_id then do; cnt=1; total_purch_amt=purch_amt; end; else do (until total_purch_amt >=100); cnt=cnt+1; total_purch_amt=purch_amt+total_purch_amt; end; output; run; Can anyone please take a look at my code and kindly let me know where I could possibly go wrong? Thank you so much! Really appreciate that!
... View more