0

動的なピボット SQL スクリプトがあります (ピボットされた列は動的です)。結果セットをExcelファイルにエクスポートし、ssisのメール送信タスクでメールで送信したかったのです。誰もそれを行う方法を知っていますか? 以下は私の動的列ピボットSQLスクリプトです

Declare @SQL varchar(max) 
Select  @SQL = Stuff((Select Distinct ',' + QuoteName([Response Code]) From YourTable Order by 1 For XML Path('')),1,1,'') 
Select  @SQL = 'Select [Employee],' + @SQL + '
                From (
                        Select [Employee],[Response Code],Cnt=1,Lvl=0 from YourTable
                        Union All
                        Select [Employee],[Response Code],Cnt=0,Lvl=0 from (Select Distinct [Employee] from YourTable) A Join (Select Distinct [Response Code] from YourTable) B on 1=1
                        Union All
                        Select ''Total'',[Response Code],count(*),1 From YourTable Group By [Response Code]
                     ) A
                Pivot (sum(Cnt) For [Response Code] in (' + @SQL + ') ) p'
Exec(@SQL);

上記のスクリプトは、次のようなテーブルを返します

    Employee    ptb ulm vml wrn
    Emp A       0   0   2   1
    Emp B       0   2   0   1
    Emp C       1   0   1   0
    Total       1   2   3   2

上記の結果テーブルを Excel ファイルにエクスポートする必要があります。列が SSIS を使用して静的である場合の方法は知っていますが、動的な列のピボットに苦労しています。誰でも私を助けてください。お時間をいただき、ありがとうございました

4

0 に答える 0