Spalte nicht summieren wenn eine andre Spalte ein Minus als Vorzeichen hat

crashi09

Neuer Benutzer
Beiträge
3
Hallo,

Ich bin ein Neuling was den SQL Server angeht, aber versuche gerade in einem Formular ein Formel einzubinden.
Folgendes soll passieren
2 Spalten eine Spalte Menge und eine Spalte erlöse

Die Spalte erlöse wird ordentlich Summiert, sollte hier ein Minus als Vorzeichen stehen wird es sauber abgezogen. Bei der Spalte Menge gibt es das Vorzeichen nicht,
und es wird nicht sauber summiert. Nun möchte ich gerne das wenn in Spalte Erlös ein Minus vor dem Betrag steht, er die Menge die dien Spalte Menge steht nicht mit summiert. Wie kann ich das mit einer Formel lösen? Ich bin für jede Hilfe Dankbar!

Ganz liebe Grüße

Jens Weiß
 
Werbung:
Du solltest wirklich dein Query posten, das macht es sehr viel einfacher.

Bei einem gewöhnlichen GROUP BY mit sum()-Funktion wird ein negatives Vorzeichen standardmäßig natürlich entsprechend berücksichtigt. Deine Spalte "Erlöse" sollte also kein Problem sein.

Für "Menge" kannst du innerhalb von sum() ein CASE verwenden:
Code:
sum(CASE WHEN Erlös < 0 THEN 0 ELSE Menge END) AS sum_menge
Du solltest dir außerdem klar darüber sein das bei Erlös = 0 in diesem Fall Menge gezählt wird. Ob das sinnvoll ist kannst nur du entscheiden.
 
Du solltest wirklich dein Query posten, das macht es sehr viel einfacher.

Bei einem gewöhnlichen GROUP BY mit sum()-Funktion wird ein negatives Vorzeichen standardmäßig natürlich entsprechend berücksichtigt. Deine Spalte "Erlöse" sollte also kein Problem sein.

Für "Menge" kannst du innerhalb von sum() ein CASE verwenden:
Code:
sum(CASE WHEN Erlös < 0 THEN 0 ELSE Menge END) AS sum_menge
Du solltest dir außerdem klar darüber sein das bei Erlös = 0 in diesem Fall Menge gezählt wird. Ob das sinnvoll ist kannst nur du entscheiden.
hallo ukulele,

Danke für Deine Antwort, Du hast Recht, das sollte auch nicht sein, aber das Vorzeichen Minus ist bei Deiner Abfrage nicht mit bei
sum(case When erlöse like '-%' or erlöse < 0 THEN 0 Menge END) as sum Menge

Könnte man Das so machen ?
 
Ich gehe erstmal davon aus das die Spalte "Erlöse" einen numerischen Datentypen hat denn sie transportiert ja einen numerischen Wert, alles andere wäre Blödsinn. Daher ist auch dein "erlöse like '-%'" ziemlicher Unfug und als ich zuletzt nachgesehen habe waren nur negative Werte kleiner als Null, daher sollte mein Code völlig ausreichen.

Wenn die Spalte, warum auch immer, eine Zeichenkette ist dann müsstest du ganz andere Probleme bekommen, z.B. im sum(erlöse) davor.

"as sum Menge" wird einen Fehler produzieren weil ein Leerzeichen deinen Spalten-Alias trennt. Wenn dann
Code:
as [sum Menge]
 
Werbung:
Ich gehe erstmal davon aus das die Spalte "Erlöse" einen numerischen Datentypen hat denn sie transportiert ja einen numerischen Wert, alles andere wäre Blödsinn. Daher ist auch dein "erlöse like '-%'" ziemlicher Unfug und als ich zuletzt nachgesehen habe waren nur negative Werte kleiner als Null, daher sollte mein Code völlig ausreichen.

Wenn die Spalte, warum auch immer, eine Zeichenkette ist dann müsstest du ganz andere Probleme bekommen, z.B. im sum(erlöse) davor.

"as sum Menge" wird einen Fehler produzieren weil ein Leerzeichen deinen Spalten-Alias trennt. Wenn dann
Code:
as [sum Menge]
Danke, das werde ich einmal testen, ich hatte noch kein Statement.

ich glaube das wird mir helfen

Viele Grüße

Jens Weiß
 
Zurück
Oben