Dynamische MSSQL-Pivot-Spaltenwerte in Spaltenüberschriften
Könnte mir jemand helfen, das Folgende auf mssql zu konvertieren?
ID | PROPERTY_NAME | PROPERTY_VALUE
1 | name1 | value
1 | name2 | value
1 | name3 | value
2 | name4 | value
2 | name2 | value
3 | name6 | value
..
PROPERTY_NAME & PROPERTY_VALUE sind die Header und haben mehrere 'Eigenschaften'
Ich möchte es konvertieren zu:
ID | NAME1 | NAME2 | NAME3 | NAME4 | NAME5 | NAME6 | nameETC...
1 | value | value | value | | | | valueETC...
2 | | value | | value | | | valueETC...
3 | | | | | | value | valueETC...
..
Wobei NAME1 | NAME2 | NAME3 usw. sind jetzt die Spaltenüberschriften.
Ich vermute, dass ein Pivot und ein 'select distinct PROPERTY_NAME from MycoolTable' vorhanden sind, kann die beiden jedoch nicht zusammenfügen.
Dies ist soweit ich habe: (keine server_id) Spalte und alle Nullen überall) Klar bin ich dumm: D
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);
select @cols = STUFF((SELECT distinct
',' + QUOTENAME(PROPERTY_NAME)
FROM [BSARA_DW_DB].[dbo].[SERVER_PROPERTY]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'');
SET @query = 'SELECT '+ @cols + ' from
(
SELECT SERVER_ID, PROPERTY_NAME, PROPERTY_CHAR_VAL
FROM [BSARA_DW_DB].[dbo].[SERVER_PROPERTY]
) x
pivot
(
MAX(SERVER_ID)
for PROPERTY_CHAR_VAL in (' + @cols + ')
) p ';
execute(@query)
Vielen Dank, Mike