2x count und trennen nach Jahr

MarioKirchmauer

Neuer Benutzer
Beiträge
2
Servus,

ich steh gerade am Schlauch und würde eure Hilfe benötigen - für euch wahrscheinlich eine Kleinigkeit.
Ich habe Kunden und ich habe Aufträge aus verschiedenen Jahren die mit 15 (z.B. 15001, 15002, ... für 2015) bzw. mit 16 (z.B. 16001, 16002, ... für 2016) beginnen. Ich möchte jetzt die Anzahl der 15er der Anzahl der 16er gegenüberstellen je Klient - aber ich bekomme das mit den Bedingungen nicht hin ... bitte um Hilfe!

Sollte dann so aussehen:
KLID Anzahl2015 Anzahl2016
111 3 7
222 5 9
... ... ...

Klienten ID und AuftragsID stehen in einer Tabelle.
KLID AUID
111 15001
222 15002
111 15003
111 16001
111 16002
222 16003
... ...

Verwendet wird MS SQL Server 2008 R2.

Vielen Dank!
LG,
Mario
 
Werbung:
Code:
test=*# select * from mario ;
 kid |  aid  
-----+-------
 111 | 15001
 222 | 15002
 111 | 15003
 111 | 16001
 111 | 16002
 222 | 16003
(6 Zeilen)

test=*# select kid, count(aid) filter (where aid between 15000 and 15999) as anzahl_2015, count(aid) filter (where aid between 16000 and 16999) as anzahl_2016 from mario group by kid;
 kid | anzahl_2015 | anzahl_2016
-----+-------------+-------------
 222 |  1 |  1
 111 |  2 |  2
(2 Zeilen)

Falls Deine DB das mit dem FILTER nicht kann:

Code:
test=*# select kid, sum(case when aid between 15000 and 15999 then 1 else 0 end) as anzahl_2015, sum(case when aid between 16000 and 16999 then 1 else 0 end) as anzahl_2016 from mario group by kid;
 kid | anzahl_2015 | anzahl_2016
-----+-------------+-------------
 222 |  1 |  1
 111 |  2 |  2
(2 Zeilen)

FILTER finde ich einfach schöner ;-)
 
Werbung:
Zurück
Oben