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

堆栈跟踪
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;

我有上面的查询显示[Outstanding Events]为每个RoundName

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

戈登·利诺夫

用途grouping sets

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章