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


data l;
input custid sale;
cards;
a 1
a 23
a 45
b 4
b 67
b 67
run;

I want to get the number for incriment by 1 based on custid as number should incremnt

Output :

custid  sale  Cust no
a  1 1
a  23 2
a  45 3
b 4 1
b  67 2
b  67 3

1 ACCEPTED SOLUTION

Accepted Solutions
Jagadishkatam
Amethyst | Level 16

Please try

proc sort data=l;

by custid sale;

run;

data want;

set l;

by custid sale;

retain custno 0;

if first.custid then custno=1;

else custno+1;

run;

Thanks,

Jag

Thanks,
Jag

View solution in original post

3 REPLIES 3
Jagadishkatam
Amethyst | Level 16

Please try

proc sort data=l;

by custid sale;

run;

data want;

set l;

by custid sale;

retain custno 0;

if first.custid then custno=1;

else custno+1;

run;

Thanks,

Jag

Thanks,
Jag
RamKumar
Fluorite | Level 6

Code is fine. It is also producing the desired result without retain statement.

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

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