MSSQL7 / SELECT / SUM ... dringend

Hallo zusammen

Ich habe eine Tabelle, die etwa wie folgt aussieht:

ID Name Code
1 abc 1
2 abc 1
3 ddd 2
4 aaa 3
5 hhh 3
6 hhh 4

Als Ergebnis möchte ich nun die Einträge pro Codes gezählt haben und diese Horizontal darstellen - etwa so:

Name Anz. Code 1 Anz. Code 2 Anz. Code 3 Anz. Code 4
-----------------------------------------------------------------
abc 2 0 0 0
ddd 1 1 4 0
...

Wie heisst das SELECT-Statement, um sowas zu realisieren.

Danke und Gruss
Martin

Bei fixer Anz. unterschiedlicher Codes z.B. über folgende SubSelects lösbar:
SELECT Name,
(SELECT count(*) FROM Tabelle as T2
WHERE T2.Name=T1.Name AND Code=1),
(SELECT count(*) FROM Tabelle as T3
WHERE T3.Name=T1.Name AND Code=2),
(SELECT count(*) FROM Tabelle as T4
WHERE T4.Name=T1.Name AND Code=3),
(SELECT count(*) FROM Tabelle as T5
WHERE T5.Name=T1.Name AND Code=4)
FROM Tabelle as T1
GROUP BY Name;

Bei unbekanter Anz. von Codes, müßte ein Cursor geschrieben werden, der das Select-Stmt aufbaut. Dieses wiederum mit execute immediate ausgeführt werden. Dabei kommen allerdings Unterschiede der einzelnen Datenbanken/SQL-Dialekte zum tragen.

Gruß
Uwe

Hallo Uwe

Danke, es funktioniert und ist affenschnell :smile:

Gruss
Martin

PS: Den SELECT baue ich dynamisch in VB auf before ich ihn an ein GRID hänge.