В следующем запросе используется точка поворота для преобразования поля [expireDate Year-Month] в столбцы при динамическом создании необходимого количества столбцов «Год-месяц».
DECLARE @SQLQuery AS NVARCHAR(MAX)
DECLARE @PivotColumns AS NVARCHAR(MAX)
--Get unique values of pivot column
SELECT @PivotColumns= COALESCE(@PivotColumns + ',','') + QUOTENAME([expireDate Year-Month])
FROM (SELECT DISTINCT [expireDate Year-Month] FROM REPORTING_DATA.tableau.vw_vehicleInspDetailsHistMonthlyFinal) AS PivotExample
SELECT @PivotColumns
--Create the dynamic query with all the values for
--pivot column at runtime
SET @SQLQuery =
N'SELECT DISTINCT Vehicle#, ' + @PivotColumns + '
FROM REPORTING_DATA.tableau.vw_vehicleInspDetailsHistMonthlyFinal
PIVOT( MAX(inspectionResult)
FOR [expireDate Year-Month] IN (' + @PivotColumns + '))
AS P
ORDER BY Vehicle# '
SELECT @SQLQuery
--Execute dynamic query
EXEC sp_executesql @SQLQuery
Проблема в том, что он выводит результат проверки для каждого автомобиля / год-месяц в отдельной строке, а не вместе в одной строке, создавая строку для каждой комбинации автомобиль / год-месяц.
Тот же автомобиль с результатами проверки для каждого списка год-месяц в отдельной строке
Каждое транспортное средство должно иметь одну строку со всеми результатами проверки в одной строке. Есть ли способ объединить результаты проверок для каждого автомобиля в одну строку?