Как объединить несколько строк в одну, но не в одно поле? - PullRequest
0 голосов
/ 05 мая 2020

В следующем запросе используется точка поворота для преобразования поля [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

Проблема в том, что он выводит результат проверки для каждого автомобиля / год-месяц в отдельной строке, а не вместе в одной строке, создавая строку для каждой комбинации автомобиль / год-месяц.

Тот же автомобиль с результатами проверки для каждого списка год-месяц в отдельной строке

Каждое транспортное средство должно иметь одну строку со всеми результатами проверки в одной строке. Есть ли способ объединить результаты проверок для каждого автомобиля в одну строку?

...