1
を使用して動的な列を持つテーブルを作成し、私は私は2つのことを行うには、運なしに、しようとしている以下のTSQLありますPIVOTコマンド
- を一時テーブルに0
- 出力にNULL値を変換するに私は 他の操作に使用できます。
結果の一部がで捕獲された添付:私は両方に作る動的な列を一時テーブルに結果をキャプチャし、ヌルを排除する必要がありますどのような変更
?おかげさまで
DECLARE @cols NVARCHAR(MAX), @stmt NVARCHAR(MAX), @ParmDefinition NVARCHAR(MAX), @PVT3 NVARCHAR(MAX);
--Get distinct values of the PIVOT Column
SELECT @cols = ISNULL(@cols+', ', '')+'['+T.Cat+']'
FROM
(
SELECT TOP 100 CONVERT(VARCHAR(2), IncomeCategoryID) AS Cat
FROM Payroll.lu_IncomeCategory
WHERE IsAllowance <> 0
AND IncomeCategoryID IN
(
SELECT DISTINCT
IncomeCategoryID
FROM Payroll.Income
WHERE IncomeCategoryID <> 0
)
ORDER BY IncomeCategoryID
) AS T;
SELECT @stmt = N'
SELECT *
FROM (SELECT EmployeeID,IncomeCategoryID,
SUM(RateAmount) [Amount]
FROM Payroll.Income
GROUP BY EmployeeID, IncomeCategoryID) as PayData
pivot
(
SUM([Amount])
FOR IncomeCategoryID IN ('[email protected]+')
) as IncomePivot';
EXEC sp_executesql
@stmt = @stmt;