I think you want to combine the records based on APP_ID?
Here is your test data.
data have;
input key $ 1-2 app_id $ 3-15 id $16-27 ftype $ 28-31 ;
list;
datalines;
011234567412312mancbhansmamFTWP
012314263219665haiaananaajaFTWM
011236478748969jakakakancndFTSI
021234567412312sasasasasasasasa
021234567412312sasasasasasasasa
021236478748969asasasasasasasaa
;
We could use SQL to join them.
proc sql ;
create table want as
select a.*,b.ftype as ftype01
from have a left join have b
on b.key='01'
and a.app_id = b.app_id
order by ftype01,a.app_id,a.key
;
quit;
Results:
Obs key app_id id ftype ftype01
1 01 1236478748969 jakakakancnd FTSI FTSI
2 02 1236478748969 asasasasasas asaa FTSI
3 01 2314263219665 haiaananaaja FTWM FTWM
4 01 1234567412312 mancbhansmam FTWP FTWP
5 02 1234567412312 sasasasasasa sasa FTWP
6 02 1234567412312 sasasasasasa sasa FTWP
You could also just use normal SAS code instead of SQL code.
proc sort data=have ;
by app_id key ;
run;
data want ;
set have ;
by app_id ;
if first.app_id then ftype01=ftype;
retain ftype01;
run;
proc sort;
by ftype01 app_id key ;
run;
... View more