此查询工作正常,但看起来多余(可能是我错了)。它有更好的方法吗? (我需要所有4列,每行总计)
select parz.*, (parz.sessioniSvolte + parz.sessioniPianificate ) as sessioniTotale
from (
select
e.Prefettura AS Prefettura,
count(case when s.Giorno<getDate() then s.idSessione else null end) AS sessioniSvolte,
count(case when s.Giorno>=getDate() then s.idSessione else null end) AS sessioniPianificate
from SESSIONE_FORMAZIONECIVICA s
inner join SEDE_SESSIONECIVICA e ON e.idSede = s.idSede
GROUP BY e.Prefettura
) as parz
我创建了类似的问题,但是我的问题并不匹配。
答案 0 :(得分:3)
通过添加简单的count(*)
:
select
e.Prefettura AS Prefettura,
count(case when s.Giorno<getDate() then s.idSessione end) AS sessioniSvolte,
count(case when s.Giorno>=getDate() then s.idSessione end) AS sessioniPianificate,
count(*) as sessioniTotale
from SESSIONE_FORMAZIONECIVICA s
join SEDE_SESSIONECIVICA e ON e.idSede = s.idSede
GROUP BY e.Prefettura
我删除了多余的else null
,因为null是没有匹配的情况下的默认结果。