【问题标题】:Showing Sub totals in SQL Server query results在 SQL Server 查询结果中显示小计
【发布时间】:2018-01-16 12:21:45
【问题描述】:
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] 子总计,然后显示整个查询结果的[Outstanding Events] 总计?

【问题讨论】:

    标签: sql sql-server tsql sql-server-2014


    【解决方案1】:

    使用grouping sets:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 2018-07-02
      • 2020-06-02
      相关资源
      最近更新 更多