我有以下需要:
以下是我用来获得上述结果的查询:
Select R.[StatusCode] , RS.[StatusName], R.[CreatedDate]
FROM Table1 as R
Inner Join Table2 as RS
ON R.StatusCode=RS.StatusName
order by R.CreatedDate;
我的要求是:我想计算每年不同StatusName
的总数(基于CreatedDate
)。
即, 2012年获得了 -
3 - “完成”状态名称的记录
1 - “void”StatusName的记录
2 - “匹配”StatusName的记录
2013年 -
2 - “取消”状态名称的记录
3 - “IPR”StatusName的记录
2 - “Void”StatusName的记录
预期输出:
稍后我必须将预期的数据导入Excel。任何人都可以帮助我。
提前致谢。
答案 0 :(得分:0)
试试这个:
Select RS.[StatusName], DATEPART ( datepart , R.[CreatedDate] ) as Y, COUNT(RS.[StatusName]) As Total
FROM Table1 as R
Inner Join Table2 as RS
ON R.StatusCode=RS.StatusName
GROUP BY DATEPART ( datepart , R.[CreatedDate] )
如果您不希望重复年份,请在CTE中包含现有查询,在列中添加ROW_NUMBER OVER PARTITION,这将为每组值创建RN。在外部查询中,只需使用CASE选择GRP_RN = 1的值,否则选择空字符串。
如果您需要该部分,请查看此参考: