Новое в SQL Pivot и Dynamic SQL. У меня есть таблица со столбцом, в которой я хотел бы, чтобы отдельные атрибуты стали заголовками столбцов в сводной таблице, а также создавали правильные основные категории для дополнительного столбца об основных данных и сообщали счет в этих полях. Проблема в том, что я не могу правильно подсчитать баллы или отдельные столбцы столбцов.Сводная таблица с динамическим SQL для нескольких столбцов
Я не могу получить поля Measure1, чтобы стать заголовками столбцов, и я не могу получить оценки для заполнения. С правильным [именем меры], связанным с Measure1 и соответствующим счетом. Спасибо за любую помощь заранее.
Declare @ColumnNames NVARCHAR (MAX) = ''
Declare @SQL NVARCHAR (MAX)= ''
Select @ColumnNames += QUOTENAME([Measure1]) + ','
From [dbo].[Table1]
Group By [Measure1]
SET @ColumnNames = LEFT(@ColumnNames, LEN(@ColumnNames)-1)
SET @SQL =
'Select * FROM
(Select
case
When [measure1] like ''%lower%'' then ''Lower''
When [measure1] like ''%upper%'' then ''Upper''
When [measure1] like ''%Days%'' then ''Days''
When [measure1] like ''%Occur%'' then ''Occurrences''
When [measure1] like ''%Pred%'' then ''Predicted''
When [measure1] like ''%Ratio%'' then ''Ratio''
end as [Measure1]
,case
When [Measure Name] like ''%Tewksbury%'' then ''Stan''
When [Measure Name] like ''%Boston%'' then ''Steve''
When [Measure Name] like ''%Seattle%'' then ''Payton''
When [Measure Name] like ''%Denver%'' then ''Lavell''
When [Measure Name] like ''%Houston%'' then ''Caren''
When [Measure Name] like ''%Hudson%'' then ''Michael''
end as Measure_Category
,[Main ID] AS [Cust ID]
,[Compared to Average]
,[score]
From
[dbo].[Table1]
) AS BaseData
PIVOT (
MAX([Compared to Average])
FOR [measure1]
IN (' + @ColumnNames +
')) AS PivotTable'
Execute sp_executesql @SQL
Крупным планом желаемых результатов:
Не могли бы вы указать, какие результаты вы получаете и чего ожидаете? –
Да, извините, я должен был включить это. –