0

我有这个查询:

select f.DesPrefettura AS desPrefettura, a.flagPrefetturaQuestura AS flag, count(a.idAccordo) AS totaleAccordo
    from ACCORDO a
    inner join PREFETTURA f on f.idProvincia = a.idPrefetturaSottoscrizione
    GROUP BY f.DesPrefettura, a.flagPrefetturaQuestura
    ORDER BY f.DesPrefettura

这给了我这个结果:

desPrefettura   flag    totaleAccordo
AGRIGENTO       0       3
AGRIGENTO       1       86
ALESSANDRIA     0       253
ALESSANDRIA     1       12

相反,我想拥有:

desPrefettura       tot01    tot02
AGRIGENTO           3        86
ALESSANDRIA         253      12

如何编辑我的查询?

4

1 回答 1

1

这将在 SQL 服务器中工作,我认为那里没有任何特定的 DBMS,所以这应该工作

select f.DesPrefettura AS desPrefettura, 
count(case when  a.flagPrefetturaQuestura=0 then    a.idAccordo else null end) AS tot01,
count(case when  a.flagPrefetturaQuestura=1 then a.idAccordo else null end) AS tot02
from ACCORDO a
inner join PREFETTURA f on f.idProvincia = a.idPrefetturaSottoscrizione
GROUP BY f.DesPrefettura
ORDER BY f.DesPrefettura
于 2013-10-16T15:01:46.110 回答