quekehanmu 发表于 2014-8-30 10:56 
proc sort data=你的数据 out=a;
by dadtunit year;
run;
楼主是要求每个dadtunit 中不同年份对应的dcost的累计和吗?
我这里有个简单的例子你可以试下,如果结果符合你的要求,可以再转化为你的数据集:
data a;
input dadtunit year dcost;
output;
cards;
1 2005 1
1 2006 2
1 2007 3
2 2013 4
2 2014 1
2 2014 3
2 2015 0
3 2000 12
3 2001 2
3 2003 3
;
run;
proc sort data=a;
by dadtunit year;
run;
data b;
set a;
by dadtunit year;
retain sum_dcost;
if first.dadtunit then sum_dcost=dcost;
else sum_dcost=sum_dcost+dcost;
run;
proc print data=b;
run;
结果如下:
The SAS System 11:33 Tuesday, August 4, 2015 3
sum_
Obs dadtunit year dcost dcost
1 1 2005 1 1
2 1 2006 2 3
3 1 2007 3 6
4 2 2013 4 4
5 2 2014 1 5
6 2 2014 3 8
7 2 2015 0 8
8 3 2000 12 12
9 3 2001 2 14
10 3 2003 3 17