想了个不是很简便的办法 抛砖引玉
data test;
input ID $ cish date yymmdd10.;
datalines;
001 1 2010/01/02
001 2 2010/05/12
001 1 2011/06/02
001 2 2011/10/12
002 1 2010/01/02
002 2 2010/05/12
002 1 2011/02/02
002 2 2011/06/12
003 1 2010/10/02
003 2 2011/02/12
003 1 2012/06/02
003 2 2012/10/12
;
data test;
set test;
by ID;
lag=dif(date);
if first.ID then lag=.;
run;
proc sql;
create table a as
select * from test where id in (select ID from test where lag>365);
create table b as
select * from test where id not in (select ID from test where lag>365);
quit;