Я пытаюсь извлечь записи, которые представляют собой номера PO, связанные с именем файла в таблице. Одно имя файла может иметь до пяти номеров PO.
Таблица выглядит так:
ID Filename PO#
-----------------------------------
1 file1 001
2 file1 002
3 file1 003
4 file1 004
5 file2 001
6 file2 002
7 file3 001
.
.
.
То, что я хочу, это:
Filename PO#1 PO#2 PO#3 PO#4 PO#5
-----------------------------------------------------------
file1 001 002 003 004
file2 001 002
file2 001
Я попробовал Pivot.
Вот мой код:
SELECT [1] AS PO1, [2] AS PO2, [3] AS PO3, [4] AS PO4,[5] AS PO5
From
(SELECT ROW_NUMBER() OVER(PARTITION BY filename ORDER BY [ID]
ASC) AS Row#, *
FROM 1) as t
PIVOT (
max(PO)
FOR Row#ByFileName IN ([1],[2], [3],[4],[5])) AS PivotTable
Однако, результат
Filename PO#1 PO#2 PO#3 PO#4 PO#5
-----------------------------------------------------------
file1 001
file1 null 002 null null null
file1 null null 003 null null
file1 null null null 004 null
file2 001
file2 null 002 null null null
file3 001
.
.
Я также пытался использовать вещи и путь XML для объединения нескольких строк в одну строку и подстроки для разделения одного столбца на несколько столбцов. Но я не мог получить то, что хотел.
Любые идеи будут очень признательны.
Спасибо