0
 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 は有効なオブジェクト名ではないというエラーがスローされます。動的に生成された列をテーブルに挿入しようとしない場合、コードは機能します。

4

1 に答える 1