SQL Server - Dynamischer Pivot

Ich brauche etwas Hilfe. Ich habe zwei Spalten, Ort und Name, ich möchte eine Anzahl von Namen für jeden Ort. Derzeit würden die Daten so aussehen:

Place | Name
100     OK
100     NEW
100     BAD  
200     BAD
200     BAD
300     OK
400     OK
400     OK
400     OK

Ich versuche, es so aussehen zu lassen, aber ich würde ungefähr 20 Zeilen schwenken (weshalb ich möchte, dass die Benennung dynamisch ist

PLACE | OK | NEW | BAD
100     1     1     1
200     0     0     2
300     1     0     0
400     3     0     0

Aus einer ganzen Reihe anderer Fragen habe ich mir das ausgedacht, aber es funktioniert nicht. Jede Hilfe wäre sehr dankbar.

DECLARE @cols AS NVARCHAR(MAX);
DECLARE @query AS NVARCHAR(MAX);

SELECT @cols = STUFF((SELECT distinct 
                        ',' +
                        QUOTENAME(NAMES)
                 FROM INFO_TABLE with (nolock)
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'');

SET @query = ' SELECT PLACE ,  ' + @cols + ' 

FROM 
(SELECT 
   CASE 
       WHEN NAME IS NOT NULL
       THEN Count(NAME) 
       ELSE 0 END AS EXPR1, 
       PLACE
       FROM INFO_TABLE with (nolock)) t
PIVOT
( 
AVG(Expr1)
FOR NAME IN (' + @cols + ' )
) 
p ' ;

Execute(@query);

Antworten auf die Frage(1)

Ihre Antwort auf die Frage