Есть ли способ напрямую сохранить результаты динамического сводного запроса в фиксированную таблицу? Поскольку результат является динамическим, я не могу создать таблицу, указав имена столбцов и методы, такие как «создать таблицу MyTable as (оператор выбора сводной таблицы)», похоже, не работают на сервере SQL («Неправильный синтаксис рядом с ключевым словом «AS»). Я попытался отформатировать приведенный ниже SQL, чтобы получить структуру SELECT-INTO-FROM, но мне это не удалось. Любая помощь, очевидно, очень ценится!
SQL, используемый для разворота (создайте благодаря этому замечательному веб-сайту!):
declare @pivot varchar(max), @sql varchar(max)
create table pivot_columns (pivot_column varchar(100))
insert into pivot_columns
select distinct DateField from MyTable order by 1
select @pivot=coalesce(@pivot+',','')+'['+pivot_column+']'from pivot_columns
set @sql = 'SELECT * FROM (select DateField, RefCode, SumField from MyTable) p
PIVOT
(sum(SumField) FOR DateField IN ( ' + @pivot + ') )
AS pvl'
drop table pivot_columns
exec (@sql)
@sql
вместо/перед его выполнением? Как выглядит построенный скрипт? - person Andriy M   schedule 06.06.2012