У меня есть таблицы в SQL Server: Продукт
Таблица продуктов :
ImageID ProductID
------- ----------
1 P1
1 P2
1 P3
2 S1
2 S2
2 S3
3 M1
Это вывод, который мне нужен:
ImageID Product1ID Product2ID Product3ID
----------- ---------- ---------- ----------
1 P1 P2 P3
2 S1 S2 S3
3 M1 null null
У ImageID может быть максимум 3 ProductID. Не обязательно, чтобы у всех ImageID было 3 продукта [например.ImageID = 3]
SELECT ImageID, [Product1ID], [Product2ID], [Product3ID]
FROM
(
SELECT ImageID, ProductID
FROM ProductTable
) AS P
PIVOT
(
max( ImageID)
FOR ProductID IN ([Product1ID], [Product2ID], [Product3ID])
) AS PVT