누군가 mssql에서 다음을 변환하도록 도와 줄 수 있습니까?MSSQL 동적 피벗 열 값을 열 머리글
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되는 헤더, ID를 가진 다수의 '속성'
내가로 변환하려면 :
ID | NAME1 | NAME2 | NAME3 | NAME4 | NAME5 | NAME6 | nameETC...
1 | value | value | value | | | | valueETC...
2 | | value | | value | | | valueETC...
3 | | | | | | value | valueETC...
..
NAME1 | NAME2 | NAME3 등은 이제 열 머리글입니다.
저는 피벗과 'MycoolTable에서 고유 PROPERTY_NAME 선택'을 추측하고 있지만이 둘을 함께 묶을 수는 없습니다.
내가 가진 이것은까지입니다 (더 SERVER_ID) 열 사방 모든 널는) 분명히 내가 바보 해요 : 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)
많은 감사, 마이크
지금까지 해보신 것은 무엇입니까? 당신은 SQL 피들 http://sqlfiddle.com에서 무언가를 만들 수 있습니까? 그리고 당신은 피벗을 언급 해 봤습니다 : http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx – Kairan
내가 뭘 시도했는지 편집했습니다. – Salakar