使用SAS中的proc sql按日期分组

时间:2015-05-29 13:58:05

标签: group-by sas date-formatting proc-sql

我想在SAS中总结每年相同成本中心的所有价值。我尝试使用Proc SQL中的Group By功能。

PROC SQL

    CREATE TABLE incident_data AS

        SELECT   Cost_Centre_Dim.Cost_Centre_Name,
                 Sum(Count*Amount) AS TOT,
                 OCC_DATE format= Year4. 
        FROM     Incidents,
                 Incident_Type,
                 Cost_Centre_Dim 
        WHERE    Incidents.Incident_Code = Incident_Type.Incident_Code
        AND      Incidents.Cost_Centre_ID = Cost_Centre_Dim.Cost_Centre_ID
        GROUP BY Cost_Centre_Dim.Cost_Centre_Name,
                 OCC_DATE 
        ORDER BY [Cost Centre Dim].[Cost Centre Name];

QUIT;
RUN;

输出如下所示:

2012  34.41  ACCI2 
2012  34.23  ACCI2 
2014  25.71  INFR1 
2014  27.82  INFR1 
2014  22.26  INFR2 
2014  20.97  INFR2 
2013  22.64  ACCI4 
2013  19.29  ACCI4 
2013  18.26  ACCI4 
2014  35.82  ACCI4 
2015  97.81  INFR3 
2015  44.04  INFR3 
2014  57.09  INFR3 

我希望我的输出显示1行每年1种事件的加起来量。是这样的:

2012  68.64  ACCI2  
2014  53.53  INFR1  
2014  43.23  INFR2  
... 

非常感谢任何建议

1 个答案:

答案 0 :(得分:0)

尝试将OCC_DATE转换为如下文字:     put(OCC_DATE, year4) as MyOCC_DATE

我认为原始代码仅以您指定的格式显示日期,但它仍然是OCC_DATE的实际数值。如果您以所需的格式将其更改为字符,则应正确进行分组。