各种金额,仅按机构分组

Various Sums, grouped by Establishment Only

我有以下查询,但我不知道如何得到想要显示的结果集。

我需要这个确切的信息,但仅按机构分组,这样每一行都会有一个机构以及该特定机构的适当总数和计数。我的查询给了我所有正确的数字,除了它还让我按 typeg、wdl 和 wdlr 分组,这为每个机构创建了多行。

SELECT
    '2014' ,
    t6.Establishment AS 'establishment id' ,
    CASE WHEN wdl > 0 THEN COUNT(wdl) END AS 'Days away cases' ,
    CASE WHEN wdlr > 0 THEN COUNT(wdlr) END AS 'Days transfer cases' ,
    SUM(WDL) AS 'days away',
    SUM(wdlr) AS 'transfer days',
    CASE WHEN typeG = 1 THEN COUNT(typeG) END AS 'Injury Count'
FROM
    cairs.gics t1
LEFT JOIN 
    lkuEstablishment t6 ON t1.org = t6.org
WHERE
    Establishment IS NOT NULL
GROUP BY
    Establishment ,
    t1.typeG ,
    t1.WDL ,
    t1.WDLR;

您没有正确使用 CASE 表达式。您应该在聚合函数中使用它们:

SELECT  '2014',
        t6.Establishment as [establishment id], 
        SUM(CASE WHEN wdl > 0 THEN 1 ELSE 0 END) as [Days away cases],
        SUM(CASE WHEN wdlr > 0 THEN 1 ELSE 0 END) as [Days transfer cases],
        SUM(WDL) as [days away], 
        SUM(wdlr) as [transfer days],
        SUM(CASE WHEN typeG = 1 THEN 1 ELSE 0 END) as [Injury Count]
FROM cairs.gics t1
LEFT JOIN lkuEstablishment t6 
    ON t1.org = t6.org
WHERE Establishment IS NOT NULL
GROUP BY t6.Establishment;