Ich habe folgende TSQL, die ich habe versucht, ohne Glück, 2 Dinge zu tun mit:Erstellen Tabelle mit dynamischen Spalten mit der PIVOT Befehl
- Nulls konvertieren auf 0
- Ausgabe in eine temporäre Tabelle Ich kann für andere Operationen verwenden.
Welche Änderungen muss ich sowohl das Ergebnis in eine temporäre Tabelle mit dynamischen Spalten machen zu erfassen, und die NULL-Werte zu beseitigen:
Teil des Ergebnisses wird in der beigefügten erfasst? Danke.
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;