如何将数据插入另一个 table 从 Pivot select 语句检索并包含动态列?

How to insert data into another table retrieved from Pivot select statement and containing dynamic columns?

这是我的查询,

DECLARE @BranchAsColumn nvarchar(max) -- 它可能包含使用逗号 (,) 分隔的 branchesName 作为动态列,它可能会有所不同,例如#ABC,#LMN,#XYZ

DECLARE @Branches nvarchar(max) -- 它可能包含使用逗号 (,) 分隔的 branchesName 用于筛选条件,并且它可能会有所不同,例如ABC,LMN,XYZ

EXEC('Select CompanyID,Company,Category,SubCategory,Months,'+@BranchAsColumn+'                  
                    From
                        (   Select                                                      
                                BranchID,
                                Branch,                             
                                CompanyID,  
                                Company,    
                                Months,
                                Department,                             
                                Amount                              
                            From #Data
                        )P
                        PIVOT
                        (
                            SUM(Amount)
                            For Branch in ('+@Branches +')
                        ) As Pivottable')

我会得到什么结果我只是想将检索到的数据插入另一个TABLE,所以请这里的任何人帮助我获得完美的解决方案。

试试这个:

EXEC('Select CompanyID,Company,Category,SubCategory,Months,'+@BranchAsColumn+'
        INTO ##MyTable
        From ( Select
        BranchID, Branch,
        CompanyID,
        Company,
        Months, Department,
        Amount
        From #Data )P PIVOT ( SUM(Amount) For Branch in ('+@Branches +') ) As Pivottable')

 -- test results
SELECT * FROM ##MyTable