[code:yyrlaqg2]
data a1 ;
input id $ b ;
retain i 0;
if id^=lag(id) then i+1;
if id=lag(id) then j+1;
else j=0;
cards;
a01 10
a02 16
a03 20
a03 20
a03 300
;
data a2;
input id $ c $;
retain i 0;
if id^=lag(id) then i+1;
if id=lag(id) then j+1;
else j=0;
cards;
a01 f
a02 m
a02 f
a03 m
a03 ff
;
proc sql noprint;
create table a3 as
select * from
a1 left join a2
on a1.i=a2.i and a1.j=a2.j;