Reputation: 21
I have the following structure in a SQL Server 2008 database. I am trying to create a script to replicate the output shown below.
It is generated by:
groupby on RPT_ID, FILE_ID, LINE_ID,
distinct columns from COLUMN_LITH and 'first' values in COLUMN_VALUES (COLUMN_NAME is dropped)
I am a beginner in SQL so this is beyond me. Any help whatsoever would be greatly appreciated.
Thanks in advance
SOURCE:
TARGET:
Upvotes: 0
Views: 47
Reputation: 389
Using dynamic pivot, it might be an option.
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.column_name)
FROM your_table_name c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT RPT_ID, FILE_ID, LINE_ID' + @cols + ' from
(
select RPT_ID
, FILE_ID
, LINE_ID
, column_values
, column_name
from your_table_name
) x
pivot
(
max(column_values)
for column_name in (' + @cols + ')
) p '
execute(@query)
Upvotes: 1