SET @SQLQuery =
N'SELECT [DocDate],[U_Sector],[U_Zone],' + @PivotColumns + '
INTO ##TBL_TEMP
FROM ##TEMPNAD
PIVOT( SUM([OfftakeQty])
FOR [Dscription] IN (' + @PivotColumns + ')) AS Q '
下表是我查询(6)列的结果,但@PivotColumns
动态变量中还有(58)列。
DocDate Sector Zone InvQty ReturnQty FreeQty ReturnQtyAmt DscrdQty DscrdQtyAmt
27-06-2019 LHR A 30 14 0 182 14 182
27-06-2019 LHR A 150 4 2 324 6 486
27-06-2019 LHR A 105 20 0 900 20 900
27-06-2019 LHR A 20 2 0 108 2 108
27-06-2019 LHR A 15 6 0 240 6 240
动态
我想在每一列上使用汇总sum()来获得每一列的总数,因为“ InvQty”值分别为30,150,105,20和15。sum()结果为320。
但是(58)列可以增加或减少。因此,我需要一个动态查询来动态获取每个列的总和,以获取以下结果。
DocDate Sector Zone InvQty ReturnQty FreeQty ReturnQtyAmt DscrdQty DscrdQtyAmt
27-06-19 LHR A 320 46 2 1754 48 1916
所以我如何在所有列上都得到高于结果而不在查询中写出它们的字段名称
谢谢