PDA

Vollständige Version anzeigen : Problem mit Case


<KinG>
02.08.2002, 15:26
Hallo,

ich habe eine SQL-Abfrage mit einer Case Aweisung geschrieben. Ungefahr so:

SELECT Steuersatz,
SteuerSum = CASE WHEN Belegart = 'Stornorechnung' THEN Steuerbetrag - 2 * Steuerbetrag
ELSE Steuerbetrag
END
FROM Rechnungen
GROUP BY SteuerSatz

Als Fehlermeldung erhalte ich immer Sinngemäß:
Belegart muss mit in Group by

Wenn ich aber Belegart mit in den Group by Befehl Packe, dann erhalte ich ein anderes Ergebnis.

Wie kann ich es ungehen das Belegart in die Group by Klausel muss?

noch zur Info: Belegart, Steuerbetrag, SteuerSatz sind Felder aus der Tabelle
SteuerSum ist das Feld, wo das ergebnis auftaucht.
Die Abfrage wird auf einem MS SQL Server 7.0 durchgeführt.

Joachim Hofmann
06.08.2002, 16:21
Hallo,

das Problem wird sein:

Du willst nach SteuerSatz gruppieren.
Das heißt mit anderen Worten:
Du willst für jeden verschiedenen Steuersatz *eine einzige Zeile* erhalten.
Innerhalb eines Steuersatzes kann Dein Steuersum aber verschieden sein. D.h. es wäre so nicht darstellbar. Du mußt vermutlich wohl oder übel, dein Steuersum in die Gruppierung mit aufnehmen, oder ihn weglassen.

HTH

<Schnippendick>
09.08.2002, 20:59
SELECT Steuersatz,
sum(CASE WHEN Belegart = 'Stornorechnung' THEN Steuerbetrag *-1
ELSE Steuerbetrag
END)
FROM Rechnungen
GROUP BY SteuerSatz