Это динамический перекрестный запрос в базе данных Northwind:Dynamic Pivot без значения Null
DECLARE @COUNTRY NVARCHAR(MAX) ='', @COUNTRY2 NVARCHAR(MAX)
SELECT @COUNTRY = @COUNTRY + QUOTENAME(Country)+', '
FROM Customers
GROUP BY Country
SET @COUNTRY= LEFT(@COUNTRY, LEN(@COUNTRY)-1)
SET @COUNTRY2 = REPLACE(@COUNTRY, ',' , '+')
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = 'SELECT * , '[email protected]+' AS TOTAL
FROM (SELECT E.EmployeeID, E.LastName,
ISNULL(OD.Quantity, 0)* ISNULL(OD.[UnitPrice],0) QU,
O.ShipCountry AS CO
FROM Orders O JOIN Employees E ON O.EmployeeID = E.EmployeeID
JOIN [dbo].[Order Details] OD ON OD.OrderID = O.OrderID) AS T
PIVOT(SUM(QU) FOR CO IN ('[email protected]+')) AS PVT
ORDER BY 1'
EXEC(@SQL)
мне нужно изменить код таким образом, чтобы иметь нулевые значения заменяются на 0.
Это много работы, что путь + это не решит его проблему замены NULLS с 0 для поворота (который, в свою очередь, вызывает общее быть NULL). –