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

Group by date using proc sql in SAS

我想在 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  
... 

非常感谢任何建议

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

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