我把你的原始数据稍微改了一下,日期加上了年,要不然跨年的就没法计算了,我假定了这些日期都是2016年的,你看一下有什么问题:
data test;
input name : $15. date : mmddyy10. indent status $;
format date yymmdd10.;
cards;
Zhangtian 05/04/2016 129 Success
Zhangtian 05/04/2016 128 Fail
Zhangtian 05/04/2016 127 Success
Zhangtian 05/01/2016 126 Success
Zhangtian 05/01/2016 125 Fail
Zhangtian 04/01/2016 124 Success
Wangyu 02/25/2016 123 Fail
Changfa 01/31/2016 122 Success
;
data wanted;
set test;
su_time=0;
fa_time=0;
do i=1 to nobs;
set test(rename=(name=_name date=_date indent=_indent status=_status)) nobs=nobs point=i;
if name=_name and _date>=date-30 and indent>_indent then do;
if _status="Success" then su_time+1;
else if _status="Fail" then fa_time+1;
end;
end;
drop _:;
run;