繁体   English   中英

在SQL中分组后添加其他总行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM