Anmelden

View Full Version : SUM mit Bedingung



linguin
24-04-07, 10:53
Hallo,

habe folgende Datenstruktur:

Kdnummer Jahr Umsatz
111222 2005 5000
111222 2006 13000
111222 2007 56000
456789 2005 2000
456789 2006 4000
456789 2006 12000

nun möchte ich per sql die daten folgendermassen herausbekommen:


Kdnummer umsatz2005 umsatz2006 umsatz2007
111222 5000 13000 56000
456789 2000 4000 12000

d.h. drucke mir in spalte "umsatz2005" nur den umsatz wenn in spalte "jahr" der Tabelle der wert "2005" drin steht.

geht das ?

Gruß

Fuerchau
24-04-07, 11:04
select kdnummer, jahr, sum(umsatz) as umsatz
from myfile
group by kdnummer, jahr

linguin
24-04-07, 11:12
danke. aber soweit war ich schon.

stelle mir folgendes vor (ist natürlich nicht richtig aber zum besseren verständnis)

select kdnummer,
if jahr=2005 then sum(umsatz) as umsatz2005,
if jahr=2006 then sum(umsatz) as umsatz2006,
if jahr=2007 then sum(umsatz) as umsatz2007,
from myfile
group by kdnummer, jahr

ist das irgendwie machbar ?

B.Hauser
24-04-07, 11:18
Wie wär's damit:


Select KundeNr,
Sum(Case When Jahr = 2005 then Umsatz else 0 End) as Ums2005,
Sum(Case When Jahr = 2006 then Umsatz else 0 End) as Ums2006,
Sum(Case When Jahr = 2007 then Umsatz else 0 End) as Ums2007
From MyFile
Where ....
Group By KundeNr;

Birgitta

linguin
24-04-07, 11:22
geil !!

danke, das wars !!