Create table on SQL Server from dynamic pivot results -


is there way directly store results of dynamic pivot query fixed table? result dynamic can't create table specifying columnnames , methods "create table mytable (pivot select statement)" seem fail on sql server ("incorrect syntax near keyword 'as'"). have tried format sql below select - - structure failed so. appreciated!

the sql used pivot (build great website!):

declare @pivot varchar(max), @sql varchar(max) create table pivot_columns (pivot_column varchar(100))  insert pivot_columns select distinct datefield mytable order 1  select @pivot=coalesce(@pivot+',','')+'['+pivot_column+']'from pivot_columns  set @sql = 'select * (select datefield, refcode, sumfield mytable) p pivot (sum(sumfield) datefield in  ( ' + @pivot + ') )  pvl'  drop table pivot_columns  exec (@sql) 

unless not following trying should able add into mynewtable sql going execute , should new table.

declare @pivot varchar(max), @sql varchar(max) create table pivot_columns (pivot_column varchar(100))  insert pivot_columns select distinct datefield mytable order 1  select @pivot=coalesce(@pivot+',','')+'['+pivot_column+']'from pivot_columns  set @sql = 'select * mynewtable (select datefield, refcode, sumfield mytable) p pivot (sum(sumfield) datefield in  ( ' + @pivot + ') )  pvl'  drop table pivot_columns  exec (@sql) 

i test creating new table in following script , gives me new table in db use:

create table t (      [month] int,      [id] nvarchar(20),      [cnt] int  )  insert t values (4,'total',214) insert t values (5,'total',23) insert t values (6,'total',23) insert t values (4,'func',47) insert t values (5,'func',5) insert t values (6,'func',5) insert t values (4,'indil',167) insert t values (5,'indil',18) insert t values (6,'indil',18)   declare @cols nvarchar(max),     @query  nvarchar(max);  select @cols = stuff((select distinct ',' + quotename(month)              t              xml path(''), type             ).value('.', 'nvarchar(max)')          ,1,1,'')  set @query = 'select *             tabletest              (                 select month, id, cnt                 t            ) x             pivot              (                  sum(cnt)                 month in (' + @cols + ')             ) p '   execute(@query)  drop table t 

Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -