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