동적 피벗 쿼리의 결과를 고정 테이블에 직접 저장하는 방법이 있습니까? 결과는 동적이므로 "create table MyTable as (pivot select statement)"와 같은 컬럼 이름과 메소드를 지정하여 테이블을 생성 할 수 없습니다. SQL Server에서 실패합니다 ("AS '키워드 근처의 구문이 올바르지 않습니다.). SELECT - INTO - FROM 구조를 가져 오기 위해 아래의 SQL을 포맷하려했지만 그렇게하지 못했습니다. 어떤 도움이 분명히 크게 감사하겠습니다!동적 피벗 결과에서 SQL Server 테이블 만들기
피벗에 사용되는 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' 인쇄 시도 되세요을/실행하기 전에? 생성 된 스크립트는 어떤 모습입니까? –
안녕 Andriy, 나는 그것을 가지고 있지만 그것을 얻지도 않았다. 그것은이다 FROM SELECT * (선택하여 DateField, REFCODE, SumField을 MyTable에서) p PIVOT ( 합 하여 DateField FOR IN (SumField) ([20110810], [20110815], ..., [20110906], [ 20110907]) ) AS pvl – Daan
그리고 피벗 자체가 잘 돌아가고, 내가 원하는 것을 보여줍니다. 결과를 테이블에 저장하여 다른 피벗 테이블 결과와 추가로 조인/결합 할 수 있습니다. 그리고 어떤 시점에서 자동으로 실행해야하는 작업이기 때문에 먼저 수동으로 테이블을 만든 다음 insert를 사용하고 싶지는 않습니다. – Daan