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/

相关文章:

sql - SQL 中的多重计数查询返回什么?

.net - 如何在 SQL Server 中以编程方式创建数据库?

c# - 计算 XML 节点脚本任务 SSIS

sql - 在事务期间更新从属表时,“FOREIGN KEY约束失败”

mysql - Sql时间戳字段的正确使用

c# - 多行插入 -> 语句超过 1000 行值的最大允许数

sql - 查找前 n 个平均值

sql-server - 文本框中显示的数据库十进制值

sql - 如何在 SQL Server 中显示获取参数值的对话框?

python - 通过不区分大小写的列表进行 SQLAlchemy 查询