[mySQL] Verschachteln von SELECT-Statements

Gawan

kennt sich schon aus
Verschachteln von SELECT-Statements

Hallo !

Ich habe gerade vor eine Tabelle mit einem einzigen SQL-Statement sozusagen zu "zerlegen" bzw. den Inhalt zu analysieren.
Meine Tabelle sieht so aus:
Code:
ArtNr        CH-Wert
16637          C
38827          A
34343          D
44883          C
49963          C
63853          H
11263          D
24564          A

Das SQL-Statement soll jetzt die CH-Werte einzeln herauspflücken und auflisten.
Ergebnis:
Code:
ArtNr       A      C      D      H
16637              1
38827       1   
34343                     1
44883              1 
49963              1
63853                            1
11263                     1
24564       1

Im Gegensatz zu meinem Beispiel kann es aber sehr viele Artikel mit gleicher ArtNr geben (ist kein Primärschlüssel) und die Matrix ist dann nicht nur mit 1en befüllt sondern mit allen möglichen Zahlenwerten.

Derzeit funktioniert das nur mit einzelnen Werten und ich muss für jede Spalte in der Ergebnismatrix eine eigene Abfrage durchführen.
Code:
SELECT ArtNr, COUNT(CH-Wert) AS C
FROM Table_Info 
WHERE CH-Wert='C'
GROUP BY ArtNr;
Zur besseren Darstellung würde ich zum Schluss die ganze Information gerne in einer Tabelle haben und versuche mich deshalb schon einige Zeit an verschachtelten SELECT-Statements.
Leider bin ich bisher noch nicht sehr weit gekommen und wäre für jede kleine Hilfe dankbar :p

Edit: Ich experimentiere derzeit mit UNION, aber damit werden die weiteren Ergebnisse leider unten angehängt und nicht als Spalten dazugefügt :(

lG
Gawan
 
Zuletzt bearbeitet:

Polyhistor

nicht mehr wegzudenken
lang lang ist es her mit SQL :)
aber mir würde da spontan sowas einfallen (ich kann aber nicht überprüfen, ob es ganz richtig ist) :

Code:
SELECT ArtNr, (SELECT COUNT(CH-Wert)
                     FROM Table_Info
                     WHERE CH-Wert = 'A'
                     AND t.ArtNr = ArtNr;), (SELECT COUNT(CH-Wert)
                                                   FROM Table_Info
                                                   WHERE CH-Wert = 'B'
                                                   AND t.ArtNr = ArtNr;), ...
FROM Table_Info t;
 
Oben