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

Daten mit unterschiedlichen Bedingungen aus einer Tabelle auslesen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von knkrg, 4 November 2014.

  1. knkrg

    knkrg Benutzer

    Hallo,

    ich stehe gerade bezüglich einer SQL Abfrage ziemlich auf dem Schlauch. Die Tabelle enthält folgende Daten:

    TYP | ZAHL | KUNDE
    ==================
    A | 15 | 2
    E | 60 | 2
    A | 20 | 2
    A | 27 | 2
    E | 70 | 2

    Die Ausgabe soll folgendermaßen ausschauen:
    Kunde | Summe TYP A | Summe TYP E | Ergebnis TYP A - TYP E

    Mein Problem: wie bekomme ich die Summe von TYP A und TYP E in einer Tabelle dargestellt? Jeweils TYP A oder TYP E in einer SQL Abfrage unterzubekommen ist kein Ding und funktioniert einwandfrei. Nur zusammen wird es schwierig (funktioniert in diesem Fall auch ein JOIN oder ist der nur für zwei Tabellen nutzbar)?

    Herzlichen Dank bereits jetzt für eine kleine Nachhilfe!
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Code:
    test=*# select * from knkrg ;
     typ | zahl | kunde
    -----+------+-------
     a  |  15 |  2
     e  |  60 |  2
     a  |  20 |  2
     a  |  27 |  2
     e  |  70 |  2
    (5 rows)
    
    Time: 0,206 ms
    test=*# select kunde, sum(case when typ='a' then zahl else 0 end) as summe_a, sum(case when typ='e' then zahl else 0 end) as summe_e, sum(case when typ='a' then zahl else 0 end) - sum(case when typ='e' then zahl else 0 end) as type_a_minus_b from knkrg group by kunde;
     kunde | summe_a | summe_e | type_a_minus_b
    -------+---------+---------+----------------
      2 |  62 |  130 |  -68
    (1 row)
    
     
  3. knkrg

    knkrg Benutzer

    Herzlichen Dank für die super schnelle Antwort! Das hilft mir sehr weiter. Allerdings habe ich *hüstel* ein kleines Detail unterschlagen. In der bisherigen Abfrage haben wir die Summe gleich in einen Geldbetrag umgewandelt:
    Code:
    convert(money,sum(zahl),2) as 'Ausgaben'
    Beim basteln ist es mir nicht gelungen convert mit in deine Abfrage einzubringen. Ist das grundsätzlich möglich?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ich denk schon. Hab aber kein M$SQL, kann es nicht soweit testen.
     
  5. knkrg

    knkrg Benutzer

    Habe es Dank deiner Unterstützung geschafft (war letztlich recht einfach) :) Mit convert schaut es jetzt so aus:
    Code:
    convert(money,sum(case when typ='A' then zahl else 0 end),2) as Ausgaben,
    Herzlichen Dank nochmals!!

    P.S.: Kann ich diesen Thread irgendwie als gelöst kennzeichnen?
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Ja klar, ganz einfach: überweise mir einfach 50 EUR ;-)
     
  7. knkrg

    knkrg Benutzer

    Ein guter Versuch ;-) Ich werte das mal als ein vielleicht :)
     
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