Group by - Anzahl mit Bedingung

MarcoVreden

Benutzer
Beiträge
11
Hallo Ihr Lieben,

ich habe hier eine Tabelle mit Kunden, mehrere Aufträge, mehreren Artikel-Positionen, Ek und VK
Jetzt möchte ich eine Abfrage je Kunde mit Anzahl Aufträgen und Anzahl Positionen. Geht das?

Anzahl Positionen habe ich hinbekommen, aber nicht die Anzahl der Aufträge.

Mit Access hatte ich das mal geschafft, indem ich eine Zwischentabelle erstellt habe, aber vielleicht geht das mit dem PL/SQL-Develper ja auch ohne Zwischentabelle?
 
Werbung:
in etwa so:

select kunde, count(auftrag), count(position) from <table> group by kunde;

Bei genauerer Beschreibung Deiner Tabelle wäre u.U. eine exaktere Antwort möglich ...
 
wie schnell du wieder bist :)

Kunde A - Auftrag 1 - Artikel 1 - 50 Euro - 100 Euro
Kunde A - Auftrag 1 - Artikel 2 - 60 Euro - 120 Euro
Kunde A - Auftrag 2 - Artikel 1 50 Euro - 100 Euro
Kunde A - Auftrag 2 - Artikel 3 - 70 Euro - 100 Euro
Kunde A - Auftrag 2 - Artikel 4 - 60 Euro - 120 Euro
Kunde A - Auftrag 2 - Artikel 5 50 Euro - 100 Euro
Kunde B...

Ergebnis der Abfrage sollte sein
Kunde - Anz.Aufträge - Anz.Positionie - Summe EK - Summe VK
A - 2 - 6 - 340,00 - 640
B ...

Bei Anzahl Aufträge scheitere ich. Denn für einen Auftrag gibt es mehrere Zeilen.
 
Code:
test=*# select * from marco;
 kunde | auftrag | artikel | preis
-------+---------+---------+-------
 a     |       1 |       1 |    50
 a     |       1 |       2 |    60
 a     |       2 |       1 |    50
 a     |       2 |       3 |    70
 a     |       2 |       4 |    60
 b     |       1 |       1 |   100
(6 rows)

test=*# select kunde, count(distinct auftrag), count(artikel), sum(preis) from marco group by kunde;
 kunde | count | count | sum
-------+-------+-------+-----
 a     |     2 |     5 | 290
 b     |     1 |     1 | 100
(2 rows)

test=*#
 
Werbung:
so einfach, so genial - VIELEN DANK! :)

Ich hoffe ich bin hier auch mit so einfachen Fragen willkommen. Die Suchfunktion hatte mir leider nicht geholfen... habe wohl falsch gesucht :(
 
Zurück
Oben