SQL Abfrage

alex96552

Grünschnabel
Hallo,
ich hätte mal eine Frage bezüglich einer SQL Abfrage. Diese schien mir auf den ersten Moment extrem einfach, als ich mich jedoch damit beschäftigte, lies die sich bei mir nicht lösen.
Ich habe sie mal stark vereinfacht, um mit dem Einfachen auf das Komplexe schließen zu können.
Und zwar soll nach beiden Attributen gruppiert werden und dann die Summe der jeweiligen Mengen berechnet werden. Ich habe hier ein Bild angehängt, welches meine Frage gut erklärt. Ich habe wirklich alles versucht, aber evtl sehe ich langsam den Wald vor lauter Bäumen nicht mehr.

Vielen Dank für eure Hilfe!
 

Anhänge

  • SQL-Frage.PNG
    SQL-Frage.PNG
    10,2 KB · Aufrufe: 12
Hi

so ein "horizontales GroupBy" (Pivottable) ist je nach Situation wirklich nicht ganz einfach...

um welches DB-System geht es?
Gibt es eine fixe, begrenzte Liste von Werten der Spalte Input? (genauer egsagt, Werte, die man alle einzeln in die Abfrage schreiben könnte)?
 
Hallo, Vielen Dank für deine Antwort und Bemühungen. Ich nutze MySQL. Die Menge des Inputs ist fix und liegt bei 4.
 
Hi

Mysql hat nichts besseres für den Zweck eingebaut als sowas:
SQL:
SELECT
    Leistungsart,  
    SUM(CASE WHEN (Input='mail') THEN 1 ELSE 0 END) AS Mail,
    SUM(CASE WHEN (Input='telefon') THEN 1 ELSE 0 END) AS Telefon
FROM 
    Tabellenname
GROUP BY 
    Leistungsart
Für weitere Werte von Input eben mehr Zeilen wie die von Mail und Telefon
SQL:
SELECT
    Leistungsart,  
    SUM(CASE WHEN (Input='mail') THEN 1 ELSE 0 END) AS Mail,
    SUM(CASE WHEN (Input='telefon') THEN 1 ELSE 0 END) AS Telefon,
    SUM(CASE WHEN (Input='brieftaube') THEN 1 ELSE 0 END) AS Brieftaube,
    SUM(CASE WHEN (Input='rauchzeichen') THEN 1 ELSE 0 END) AS Rauchzeichen
FROM 
    Tabellenname
GROUP BY 
    Leistungsart
 
Zurück