sql - 在 SQL Server 查询结果中显示小计

标签 sql sql-server t-sql sql-server-2014

SELECT 
    BCD.[EventID],
    M.TargetCategory,
    BCD.[RoundName],
    COUNT(CASE
             WHEN R.Status_Id <> 4
                THEN 1
                ELSE NULL
          END) AS [Outstanding Events]
FROM 
    [dbo].[Event_Details] BCD
LEFT JOIN 
    [dbo].[lkpTarget] M ON BCD.TargetID = M.TargetID
LEFT JOIN 
    [dbo].[EventComments] R ON BCD.EventID = R.[EventID]
GROUP BY 
    BCD.[EventID], M.TargetCategory, BCD.[RoundName]
HAVING 
    COUNT(CASE
             WHEN R.Status_Id <> 4
                THEN 1
                ELSE NULL
          END) > 0
ORDER BY 
    TargetCategory ASC;

上面的查询显示了每个 RoundName[Outstanding Events]

有谁知道修改上述查询的最佳方法,以便我可以显示按 TargetCategory 分组的 [Outstanding Events] 小计,然后显示 [整个查询结果的未完成事件]总计?

最佳答案

使用grouping sets :

GROUP BY GROUPING SETS ( (BCD.[EventID], M.TargetCategory, BCD.[RoundName]),
                         (BCD.[RoundName]),
                         ()
                       )

关于sql - 在 SQL Server 查询结果中显示小计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48281188/

相关文章:

php - 如何避免 SQL 查询检查 IS NULL 的误报?

sql - 如何在 SQL Server Management Studio 中测试表值函数?

sql-server - 基于开始结束日期 SQL Server 拆分行

sql-server - 在 Visual Studio 2017 中安装 Oracle Attunity 驱动程序

sql - 创建椭圆地理表示

sql-server - 具有多个 JOINS 的复杂选择逻辑

mysql - 无法在 MySQL 中创建外键约束。错误编号 150

sql - 根据列规则选择第一个匹配项

java - 如何使用 sql 创建嵌套选择?

sql - 编写 T-SQL 查询来查找所有至少连续出现 3 次的数字