
Originariamente inviata da
gian21
Salve a tutti la domanda che mi pongo e questa qui.
Ho un database con i campi
Squadra p2013 p2014 anno1 anno2
Napoli. 34. 45. A. B
Real 87. 99. A. A
Vorrei fare una condizione nella Query che se anno1 e uguale ad a è anno2 e uguale a a mi faccia la somma di tutto e me la mette nella variabile s mentre se una delle due e uguale a b mi faccia la somma solo dei punti di b e me li metta in un altra variabile sb
So che è un po complesso ma è un operazione che si può fare con facilità ?
query principale:
codice:
select
tmp.squadra,
tmp.p2013,
tmp.p2014,
tmp.anno1,
tmp.anno2,
case when (tmp.anno1='A' and tmp.anno2='A') then tmp.p2013+tmp.p2013 else 0 end s,
case when (tmp.anno1='A' and tmp.anno2='B') then tmp.p2014
when (tmp.anno1='B' and tmp.anno2='A') then tmp.p2013
when (tmp.anno1='B' and tmp.anno2='B') then tmp.p2013+tmp.p2014 else 0 end sb
from tmp
da cui estrai solo le somme:
query solo con valori sommati:
codice:
select
sum(case when (tmp.anno1='A' and tmp.anno2='A') then tmp.p2013+tmp.p2013 else 0 end) s,
sum(case when (tmp.anno1='A' and tmp.anno2='B') then tmp.p2014
when (tmp.anno1='B' and tmp.anno2='A') then tmp.p2013
when (tmp.anno1='B' and tmp.anno2='B') then tmp.p2013+tmp.p2014 else 0 end) sb
from tmp
ciao
ps.: la mia tabella si chiama TMP.......testato con firebird.