SQL is by far the best approach i think however hash is fun data current;
infile cards;
input id visit_date;
attrib visit_date length=4 informat=date9. format=ddmmyy10.;
cards;
1 01nov14
1 11nov14
2 22nov15
2 24nov15
3 01nov16
4 01nov16
;
run;
data previous;
infile cards;
input id last_date;
attrib last_date length=4 informat=date9. format=ddmmyy10.;
cards;
1 01jan14
1 11feb14
1 02jan15
1 01nov14
2 01nov15
2 22nov15
2 23nov15
3 01nov16
4 12nov16
;
run;
data want;
if _n_=1 then do;
if 0 then do; set current;set previous;end;
declare hash h(dataset: 'previous',multidata:'y');
h.definekey('id');
h.definedata('last_date');
h.definedone();
end;
set current;
rc=h.find();
do while(rc = 0);
if visit_date>last_date then _t=max( _t, last_date);
rc = h.find_next();
end;
last_date=_t;
drop rc _:;
run;
... View more