Hallo,
Es gibt eine Tabelle „Artikel“:
Ich möchte mit eine SQL Abfrage die Menge mit dem Status ‚A’ und die Menge mit Status B ermitteln.Code:Id | Artikel_ID | Menge | Status 1 21 5 A 2 22 3 A 3 21 4 B 4 21 2 A 5 21 3 C 6 21 1 B
Zum Beispiel:
Ich weiß, dass ich das mit zwei SQL Abfragen machen kann.Code:Artikel_ID | Menge mit Status A | Menge mit Status B 21 7 5
Select Artikel_ID, SUM(Menge) FROM „Artikel“
WHERE „Artikel_ID“ = ‘21’ AND „Status“ = ‘A’
Group By „Artikel_ID“
Select Artikel_ID, SUM(Menge) FROM „Artikel“
WHERE „Artikel_ID“ = ‘21’ AND „Status“ = ‘B’
Group By „Artikel_ID“
Die Frage ist, ob ich das in eine SQL Abfrage einpacken kann.
Danke in voraus.
Igor
Kurze Antwort: ja.
längere Antwort: das habe ich gestern Abend erst in einer ähnlichen Anwendung gezeigt.
Bitte: anstatt Formatierung mit Schriftarten lieber Copy&Paste-fähige Tabellendefinition und Insert-Befehle für Beispieldaten zeigen.
ganz lange Antwort:
Btw.: ich zeige dies so ca. 3-4 mal pro Monat ...Code:test=*# select * from mengen ; id | artikel | menge | status ----+---------+-------+-------- 1 | 21 | 5 | a 2 | 22 | 3 | a 3 | 21 | 4 | b 4 | 21 | 2 | a 5 | 21 | 3 | c 6 | 21 | 1 | b (6 rows) test=*# select artikel, sum(case when status='a' then menge else 0 end) as "Menge A", sum(case when status='b' then menge else 0 end) as "Menge B" from mengen where artikel = '21' group by 1; artikel | Menge A | Menge B ---------+---------+--------- 21 | 7 | 5 (1 row)
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Danke Andreas.
Igor
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen