Frage zu Select mit Group By

10/06/2009 - 10:06 von Thomas Bayer | Report spam
Hallo,
ich habe folgenden Select:

Select GEBIET, PRODUKT, Sum (WERT) From TABELLE Where KENNZEICHEN = 'A'
Group By GEBIET, PRODUKT

Jetzt gibt es vereinzelt Eintràge mit dem Kennzeichen 'B'.
Diese muss ich mit negativem Wert einrechnen.
Meine Idee war ein UNION in folgender Weise:

Select GEBIET, PRODUKT, Sum (WERT) From TABELLE Where KENNZEICHEN = 'A'
Group By GEBIET, PRODUKT
UNION
Select GEBIET, PRODUKT, (Sum (WERT)) * -1 From TABELLE Where KENNZEICHEN =
'B' Group By GEBIET, PRODUKT

Hier werden die negativen Werte aber separat zurückgegeben.
Gibt es eine Möglichkeit, dass die Werte mit dem Kennzeichen 'B' gleich
Subtrahiert werden?
 

Lesen sie die antworten

#1 Frank Kalis
10/06/2009 - 10:31 | Warnen spam
On 10 Jun., 10:06, "Thomas Bayer"
wrote:

ich habe folgenden Select:

Select GEBIET, PRODUKT, Sum (WERT) From TABELLE Where KENNZEICHEN = 'A'
Group By GEBIET, PRODUKT

Jetzt gibt es vereinzelt Eintràge mit dem Kennzeichen 'B'.
Diese muss ich mit negativem Wert einrechnen.
Meine Idee war ein UNION in folgender Weise:

Select GEBIET, PRODUKT, Sum (WERT) From TABELLE Where KENNZEICHEN = 'A'
Group By GEBIET, PRODUKT
UNION
Select GEBIET, PRODUKT, (Sum (WERT)) * -1 From TABELLE Where KENNZEICHEN > 'B' Group By GEBIET, PRODUKT

Hier werden die negativen Werte aber separat zurückgegeben.
Gibt es eine Möglichkeit, dass die Werte mit dem Kennzeichen 'B' gleich
Subtrahiert werden?



Das sollte funktionieren:

SELECT
GEBIET, PRODUKT, SUM (CASE WHEN Kennzeichen = 'A' THEN WERT ELSE
Wert * -1 END)
FROM
TABELLE
WHERE
KENNZEICHEN IN ('A', 'B')
GROUP BY
GEBIET, PRODUKT;
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.org

Ähnliche fragen