Как динамически поворачивать только 1 столбец, оставляя остальное на месте - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь динамически поворачивать таблицу с 4 столбцами.До сих пор мне удалось повернуть столбец «AttributeId», однако рядом с ним отображается только ключевой индекс «RefRecId».Я хотел бы, чтобы также были показаны другие 2 столбца.

Интересно, где я должен настроить оператор SELECT для добавления других столбцов к результату?Эти столбцы не нужно поворачивать, их нужно выбирать так же, как и ключ (RefRecId).

Ниже кода пока:

DECLARE @cols AS NVARCHAR(max) = Stuff((SELECT DISTINCT ', ' + Quotename(AttributeId) 
     FROM   SATATTRIBUTEREF       
     FOR xml path(''), type).value('.', 'NVARCHAR(MAX)'), 1, 1, ''); 

DECLARE @maxCols AS NVARCHAR(max) = Stuff((SELECT DISTINCT ', max(' + Quotename(AttributeId) + ') as ' + Quotename(AttributeId)
     FROM   SATATTRIBUTEREF       
     FOR xml path(''), type).value('.', 'NVARCHAR(MAX)'), 1, 1, ''); 

DECLARE @query AS NVARCHAR(max) =  'SELECT     fat.RefRecId,'+@maxCols+'
                                FROM       (SELECT RefRecId, '+ @cols +'
                                            FROM   SATATTRIBUTEREF 
                                            PIVOT(Max(Value) FOR AttributeId IN ('+ @cols +')) piv) fat


                                group by   fat.RefRecId';

EXECUTE(@query)

Чего мне здесь не хватает?

Редактировать: у меня было небольшое затемнение, То, что я пытаюсь сделать, также невозможно и не нужно.Мне жаль!С уважением, Игорь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...