Мне удалось отобразить каждую строку в столбце с помощью сводки, однако при наличии нескольких значений отображается только одно из значений строки. Я подозреваю, что функция MAX в цикле for не может найти успешную замену.
Я пробовал другие функции SQL.
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Provincia)
FROM Codigos_Postales
GROUP BY Provincia
ORDER BY Provincia
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
SET @query = N'SELECT Poblacion,' + @cols + N' from
(
select * from Codigos_Postales
) x
pivot
(
MAX(Codigo_Postal)
for Provincia in (' + @cols + N')
) p ORDER BY Poblacion ASC'
EXEC sp_executesql @query;
Таблица, которую я пытаюсь развернуть:
Результат:
Ожидаемый результат: