data raw(drop=rq1);
format rq mmddyy8.;
input id$ bh rq1 $ je;
rq=mdy(scan(rq1,2,.),scan(rq1,3,.),scan(rq1,1,.));
cards;
A 1 2009.4.1 10
A 2 2009.4.3 20
B 1 2009.4.2 20
B 2 2009.4.5 30
B 4 2009.4.9 50
;
run;
proc sort data=raw;
by id;
data result(drop=rq1);
set raw;
by id;
rq1=lag(rq);
if first.id then rq1=.;
rqdif=rq-rq1;
run;