按年,月和日期分组

时间:2017-08-01 06:36:11

标签: sql-server tsql grouping-sets

是否可以使用GROUPING SETS汇总日期,月份和年份,其中显示日期并将其分组为月份和年份,并显示月份和年份的值而不是{{1 }}?

以下是示例数据,以及我尝试使用分组设置

null

以下是查询返回的内容(左)和我想要完成的内容(右)

enter image description here

1 个答案:

答案 0 :(得分:5)

您可以使用:

;WITH cte AS (
  select
    productLine, 
    employeeId, 
    salesDate, 
    mon=month(salesdate),
    yr=year(salesdate),
    salesTotal
  from #tbl_data   
)
select
    productLine, 
    employeeId, 
    salesDate, 
    mon,
    yr ,
    sum(salesTotal) as salesTotal
from cte
group by grouping sets
(
     (productLine, employeeId, salesDate, yr)
    ,(productLine, employeeId, yr)
    ,(productLine)
    ,(productLine, mon, yr)
);

<强> Rextester Demo