Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

2x count und trennen nach Jahr

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von MarioKirchmauer, 6 September 2016.

  1. MarioKirchmauer

    MarioKirchmauer Neuer Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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 ;-)
     
  3. MarioKirchmauer

    MarioKirchmauer Neuer Benutzer

    Filter funktioniert leider nicht, wäre hübsch gewesen.
    Die Idee mit dem aufsummieren ist spitze ... Vielen, vielen Dank!
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ja, ist eine recht neue SQL-Spezifikation, die derzeit nur von den besten Datenbanken der Welt unterstützt wird...
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden