各种金额,仅按机构分组
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;
我有以下查询,但我不知道如何得到想要显示的结果集。
我需要这个确切的信息,但仅按机构分组,这样每一行都会有一个机构以及该特定机构的适当总数和计数。我的查询给了我所有正确的数字,除了它还让我按 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;