SQL: Zwei verschiedene Summen im Select

02/09/2009 - 13:23 von Burkhard Schneider | Report spam
Hallo zusammen,

Ich habe dieses SQL-Statement:

SELECT Kostenstellen.NR,
Sum(Gesamt.Kosten) as Summe
FROM (Gesamt LEFT JOIN Kostenstellen ON Gesamt.NR = Kostenstellen.NR)
LEFT JOIN Projekte ON Gesamt.PROJ_NR = Projekte.PROJ_NR
Where Projekte.Sonder=0
Group By Kostenstellen.NR

Jetzt will ich eine zweite Summe über alle Projekte, aber mit
Projekte.Sonder>0. Beide Summen sollen in einer Zeile erscheinen.

Ich bràuchte also etwas in der Art:

SELECT Kostenstellen.NR,
Sum(Gesamt.Kosten) as Summe1 (mit Where Projekte.Sonder=0)
Sum(Gesamt.Kosten) as Summe2 (mit Where Projekte.Sonder>0)
FROM (Gesamt LEFT JOIN Kostenstellen ON Gesamt.NR = Kostenstellen.NR)
LEFT JOIN Projekte ON Gesamt.PROJ_NR = Projekte.PROJ_NR
Group By Kostenstellen.NR

Ist das irgendwie möglich?
mit D2007 und DBISAM

Gruß
Burkhard Schneider
 

Lesen sie die antworten

#1 lothar.armbruester
02/09/2009 - 18:02 | Warnen spam
"Burkhard Schneider" writes:

Hallo zusammen,

Ich habe dieses SQL-Statement:

SELECT Kostenstellen.NR,
Sum(Gesamt.Kosten) as Summe
FROM (Gesamt LEFT JOIN Kostenstellen ON Gesamt.NR = Kostenstellen.NR)
LEFT JOIN Projekte ON Gesamt.PROJ_NR = Projekte.PROJ_NR
Where Projekte.Sonder=0
Group By Kostenstellen.NR

Jetzt will ich eine zweite Summe über alle Projekte, aber mit
Projekte.Sonder>0. Beide Summen sollen in einer Zeile erscheinen.

Ich bràuchte also etwas in der Art:

SELECT Kostenstellen.NR,
Sum(Gesamt.Kosten) as Summe1 (mit Where Projekte.Sonder=0)
Sum(Gesamt.Kosten) as Summe2 (mit Where Projekte.Sonder>0)
FROM (Gesamt LEFT JOIN Kostenstellen ON Gesamt.NR = Kostenstellen.NR)
LEFT JOIN Projekte ON Gesamt.PROJ_NR = Projekte.PROJ_NR
Group By Kostenstellen.NR

Ist das irgendwie möglich?
mit D2007 und DBISAM

Gruß
Burkhard Schneider



Also auf einer richtigen Datenbank (tm) würde ich soetwas machen:

select
Kostenstellen.NR,
sum(case when Projekte.Sonder=0 then Gesamt.Kosten else 0 end) as summe1,
sum(case when Projekte.Sonder>0 then Gesamt.Kosten else 0 end) as summe2
FROM (Gesamt LEFT JOIN Kostenstellen ON Gesamt.NR = Kostenstellen.NR)
LEFT JOIN Projekte ON Gesamt.PROJ_NR = Projekte.PROJ_NR
Group By Kostenstellen.NR

Ich weiß jetzt nicht, ob DBISAM soetwas kann, aber ggf. geht statt des case
auch ein iif.

HTH,
Lothar

Lothar Armbrüster |
Hauptstr. 26 |
65346 Eltville |

Ähnliche fragen