SQL Server динамическая групповая сводка - PullRequest
0 голосов
/ 13 июня 2018

У меня есть следующая структура в базе данных SQL Server 2008.Я пытаюсь создать сценарий для репликации вывода, показанного ниже.

Он генерируется:

groupby on RPT_ID, FILE_ID, LINE_ID, 

отличными столбцами от COLUMN_LITH и 'первыми' значениями в COLUMN_VALUES (COLUMN_NAME отбрасывается)

Я новичок в SQL, так что это за мной.Будем благодарны за любую помощь.

Заранее спасибо

ИСТОЧНИК:

enter image description here

ЦЕЛЬ:

enter image description here

1 Ответ

0 голосов
/ 13 июня 2018

При использовании динамического поворота это может быть опция.

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)
...