select @cols =
STUFF((SELECT ',' + QUOTENAME(grade)
from #temp
group by grade
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
select @colsRollup = STUFF((SELECT ', Sum(' + QUOTENAME(grade) + ') as '+QUOTENAME (grade)
from #temp
group by grade
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query
= 'SELECT * into #temp3 from
(
SELECT lob as "Vertical", '+ @colsRollup + '
FROM
(
SELECT lob,' + @cols + ' from
(
select lob,
grade,
asso_count
from #temp
) x
pivot
(
count(grade)
for grade in (' + @cols + ')
) p
) x1
GROUP BY lob with ROLLUP)x2'
execute(@query)
Я пытаюсь создать динамические столбцы и вставить их во временную таблицу. Но это порождает ошибку, говорящую, что # temp3 не является допустимым именем объекта. код работает, если я не пытаюсь вставить динамически создаваемые столбцы в таблицу.SQL Динамические столбцы
mysql или sql-server? Выберите один и отредактируйте теги. (Он выглядит как sql-server) – slavoo
Привет, его SQL Server. –
@prasanthunnikrishnan Как вы это делаете? В хранимой процедуре или каким-то другим способом? – jpw