SQL Summieren WENN
Hallo,
ich habe folgendes Problem bei dem ich seit Tagen nicht so recht weiterkomme:
Es gibt beliebig viele Datensätze mit Menge und Mengeneinheit zu einem gemeinsamen Nenner "Rechnugsnummer"
Also:
Produkt, menge, Mengeneinheit, RE-Nummer, Positionspreis
Produkt A, 25, CBM (Kubikmeter), RE0815, 20
Produkt B, 30, CBM, RE0815, 50
Produkt C, 10, QM (Quadratmeter), RE0815, 70
Produkt D, 2, QM, RE0815, 5
Ich möchte jetzt eine Abfrage Gesamtsumme: SUM(Positionspreis) AS Gesamtsumme
als auch Abfrage Gesamtmenge in CBM und QM
Summe CBM, Summe QM, Gesamtsumme Preis:
55 (CBM), 12 (QM), 145
Ich brauche also sowas wie:
SUM(fakturierteMengeCBM) as CBM wehre Mengeneinheit = CMB...
Kann mir da einer helfen?
THX
ich habe folgendes Problem bei dem ich seit Tagen nicht so recht weiterkomme:
Es gibt beliebig viele Datensätze mit Menge und Mengeneinheit zu einem gemeinsamen Nenner "Rechnugsnummer"
Also:
Produkt, menge, Mengeneinheit, RE-Nummer, Positionspreis
Produkt A, 25, CBM (Kubikmeter), RE0815, 20
Produkt B, 30, CBM, RE0815, 50
Produkt C, 10, QM (Quadratmeter), RE0815, 70
Produkt D, 2, QM, RE0815, 5
Ich möchte jetzt eine Abfrage Gesamtsumme: SUM(Positionspreis) AS Gesamtsumme
als auch Abfrage Gesamtmenge in CBM und QM
Summe CBM, Summe QM, Gesamtsumme Preis:
55 (CBM), 12 (QM), 145
Ich brauche also sowas wie:
SUM(fakturierteMengeCBM) as CBM wehre Mengeneinheit = CMB...
Kann mir da einer helfen?
THX
Please also mark the comments that contributed to the solution of the article
Content-ID: 521285
Url: https://administrator.de/contentid/521285
Printed on: November 5, 2024 at 04:11 o'clock
4 Comments
Latest comment
Hi,
2 SELECTS in einer dritten verschachteln.
E.
Edit: Aktualisiert. Hatte Preis vergessen.
2 SELECTS in einer dritten verschachteln.
SELECT
(SELECT SUM([menge]) FROM Tabelle1 WHERE [Mengeneinheit] = 'CBM' AND [RE-Nummer] = 'RE0815' ) AS CBM,
(SELECT SUM([menge]) FROM Tabelle1 WHERE [Mengeneinheit] = 'QM' AND [RE-Nummer] = 'RE0815' ) AS QM,
(SELECT SUM([Positionspreis]) FROM Tabelle1 WHERE [RE-Nummer] = 'RE0815' ) AS Preis
E.
Edit: Aktualisiert. Hatte Preis vergessen.
Ich würde es anders machen:
Das sollte den Server weniger belasten, erfordert die Angabe der RE-Nr. nur an einer Stelle und läßt sich besser erweitern, z.B. durch Gruppieren etc.
SELECT
sum(CASE WHEN [Mengeneinheit] = 'CBM' THEN [menge] ELSE NULL END) AS CRM,
sum(CASE WHEN [Mengeneinheit] = 'QM' THEN [menge] ELSE NULL END) AS QM,
sum([Positionspreis]) AS Preis
FROM Tabelle1
WHERE [RE-Nummer] = 'RE0815'