## SEQUENTIAL NUMBER CREATION

Solved
Frequent Contributor
Posts: 87

# SEQUENTIAL NUMBER CREATION

In the below dataset A, I have 4 names with ID numbers, may I know how to create new ID for the new names in dataset, from 1008 to 1011? Below is sample only, i could have thousands of new names.

DATA A;
INFILE CARDS;
INPUT ID NAME \$;
CARDS;
1004 JESSICA
1005 UTAKA
1006 MORRISSON
1007 NELSON
;
RUN;

DATA B;
INFILE CARDS;
INPUT NAME \$;
CARDS;
RYAN
HOLLY
MASON
DORREN
;
RUN;

Accepted Solutions
Solution
‎01-26-2017 09:46 PM
Super User
Posts: 24,027

## Re: SEQUENTIAL NUMBER CREATION

[ Edited ]

Data want;

set a(in=AI)

B(in=BI);

retain maxid count 0;

if AI and id>MaxID then maxID=ID;

if BI then Do;

count+1;

ID=maxID + count;

end;

run;

This can possibly be simplified massively but it's easy to understand.

Edit: fixed typo. Also, this is untested.

All Replies
Super User
Posts: 24,027

## Re: SEQUENTIAL NUMBER CREATION

Are you using solely SAS? Many DBs have auto-incrementing IDs which is why I ask.

Frequent Contributor
Posts: 87

## Re: SEQUENTIAL NUMBER CREATION

Yes, SAS only.

Solution
‎01-26-2017 09:46 PM
Super User
Posts: 24,027

## Re: SEQUENTIAL NUMBER CREATION

[ Edited ]

Data want;

set a(in=AI)

B(in=BI);

retain maxid count 0;

if AI and id>MaxID then maxID=ID;

if BI then Do;

count+1;

ID=maxID + count;

end;

run;

This can possibly be simplified massively but it's easy to understand.

Edit: fixed typo. Also, this is untested.

🔒 This topic is solved and locked.