SQL Statement mit Aggregatfunktionen

21/08/2009 - 23:46 von Norbert Pürringer | Report spam
Hallo Leute,

kann mir jemand einen Tipp geben, mit welchem SQL-Statement ich
folgendes Resultat schaffe:

Name Zahl Flag
A 10 0
A 15 1
A 12 0
B 20 1
B 10 1
B 25 0

Resultat:

Name SummeGesamt SummeBedingt
A 37 15
B 55 35

Die ersten zwei Spalten sind ja noch einfach:
SELECT Name, SUM(Zahl) AS SummeGesamt FROM MyTable GROUP BY Name

Wie bekomme ich die dritte Spalte hinein?

Danke im Voraus,
Norbert
 

Lesen sie die antworten

#1 Uli Münch
22/08/2009 - 06:52 | Warnen spam
Hallo Norbert,

wenn die dritte Spalte, die Summe aus den Zeilen sein soll. deren Flag auf 1
steht, müsste die Lösung so aussehen


SELECT Name, SUM(Zahl) AS SummeGesamt,
SUM(CASE WHEN Flag=1 THEN Zahl ELSE 0 END) AS SummeBedingt
FROM MyTable GROUP BY Name

dann ist aber das von Dir vorgegebene Ergebnis nicht richtig.
Andernfalls müsstest Du mal die Bedingung für die dritte Spalte beschreiben.

Gruss Uli

"Norbert Pürringer" schrieb im Newsbeitrag
news:
Hallo Leute,

kann mir jemand einen Tipp geben, mit welchem SQL-Statement ich
folgendes Resultat schaffe:

Name Zahl Flag
A 10 0
A 15 1
A 12 0
B 20 1
B 10 1
B 25 0

Resultat:

Name SummeGesamt SummeBedingt
A 37 15
B 55 35

Die ersten zwei Spalten sind ja noch einfach:
SELECT Name, SUM(Zahl) AS SummeGesamt FROM MyTable GROUP BY Name

Wie bekomme ich die dritte Spalte hinein?

Danke im Voraus,
Norbert

Ähnliche fragen