data a;
input name$ stock$ d yymmdd10.;
format d yymmdd10.;
cards;
张三 000002 20080804
张三 000002 20091105
张三 000002 20100810
李四 000002 20071030
李四 000002 20081028
李四 000002 20090108
;
run;
data b;
newd=.;
set a;run;
proc sort data=b;
by name d;
run;
data c;
set b;
format newd yymmdd10.;
by name;
if first.name then newd=d;
run;
data d(keep=name newd);set c;
where ...
data a;
input name$ stock$ d yymmdd10.;
format d yymmdd10.;
cards;
张三 000002 20080804
张三 000002 20091105
张三 000002 20100810
李四 000002 20071030
李四 000002 20081028
李四 000002 20090108
;
run;
data b;
newd=.;
set a;run;
proc sort data=b;
by name d;
run;
data c;
set b;
format newd yymmdd10.;
by name;
if first.name then newd=d;
run;
data d(keep=name newd);set c;
where newd^=.;
run;
proc sort data=a;
by name d;
run;
data m;merge a d;by name;run;
data a;
input name$ stock$ d yymmdd10.;
format d yymmdd10.;
cards;
张三 000002 20080804
张三 000002 20091105
张三 000002 20100810
李四 000002 20071030
李四 000002 20081028
李四 000002 20090108
;
run;
data b;
newd=.;
set a;run;
proc sort data=b;
by name d;
run;
data c;
set b;
format newd yymmdd10.;
by name;
if first.name then newd=d;
run;
data d(keep=name newd);set c;
where newd^=.;
run;
proc sort data=a;
by name d;
run;
data m;merge a d;by name;run;