Daten mit unterschiedlichen Bedingungen aus einer Tabelle auslesen

knkrg

Benutzer
Beiträge
7
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!
 
Werbung:
Herzlichen Dank bereits jetzt für eine kleine Nachhilfe!


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)
 
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?
 
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?
 
Werbung:
Zurück
Oben