[英]Add additional total row after grouping in SQL
我正在创建一个SSRS报告,需要在其中显示一个组的值之和,并且需要为这些组创建主组。 我想知道这是否可能。 如果不是,是否可以仅添加另一行以对分组的查询求和?
我当前的代码如下:
SELECT ISNULL([MasterGroup],'Other') AS 'Receipts',
SUM([ReceiptAmount]) AS 'Sum'
FROM TableA
WHERE [MasterGroup] IN ('Other','A','B','C','D','E')
GROUP BY [MasterGroup]
不幸的是,仅显示了AE组,被替换为NULL的NULL也未显示。
我目前看到的是:
如果可能的话,这就是我想输出的内容:
如果我无法在单个查询中执行此操作,则可能可以创建多行以达到最终目标,而我想输出的内容是:
您可以使用grouping sets
:
SELECT COALESCE(CustomGroup, 'Total') as CustomerGroup,
Mastergroup AS Receipts, SUM(ReceiptAmount) AS 'Sum'
FROM TableA a CROSS APPLY
(VALUES (CASE WHEN MasterGroup in ('A', 'B') THEN 'Group 1'
WHEN MasterGroup in ('C', 'D') THEN 'Group 2'
WHEN MasterGroup in ('E') THEN 'Group 3'
END)
) v(custom_group)
WHERE [MasterGroup] IN ('Other','A', 'B', 'C', 'D', 'E')
GROUP BY GROUPING SETS ( (CustomGroup, Mastergroup), (CustomGroup) );
格式与您指定的格式略有不同,但应该足够相似。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.