У меня есть следующий TSQL, что я пытался, но безуспешно, чтобы сделать 2 вещи с:Создание таблицы с динамическими столбцами с помощью команды PIVOT
- конвертировать NULLS в 0
- выхода во временную таблицу Я могу использовать для другие операции.
Часть результата захватывается в прилагаемом:
Какие изменения мне нужно сделать, чтобы захватить как результат в временную таблицу с динамическими столбцами, и устранять аннулирует? Спасибо.
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;