Я пытаюсь сделать PIVOT на столе с двумя рядами, как это:SQL Pivot с помощью всего двух столбцов
Category | Sector
---------------------------
Bulbs | DIY
Bulbs | Home
Picnic blanket | DIY
Picnic blanket | Home
Picnic blanket | Interior
Каждая категория может иметь 1 или несколько секторов.
Я пытаюсь получить таблицу, как это:
Category | Sector 1 | Sector 2 | Sector 3
-------------------------------------------------
Bulbs | DIY | Home | NULL
Picnic blanket | DIY | Home | Interior
Запроса выглядит следующим образом:
SELECT
dbo.fn_DbContent_GetTranslation(pt.Name_DbContentId, 2) 'Category'
, dbo.fn_DbContent_GetTranslation(s.Name_DbContentId, 2) 'Sector'
FROM dbo.ProductType pt
JOIN dbo.ProductTypeMandator ptm ON ptm.ProductTypeId = pt.Id
JOIN dbo.ProductTypeMandator2PortalSector ptmps ON ptmps.ProductTypeMandatorId = ptm.Id
JOIN dbo.PortalSector ps ON ps.Id = ptmps.PortalSectorId
JOIN dbo.Sector s ON s.Id = ps.SectorId
WHERE
ptmps.PortalSectorId IN (21, 18, 19)
я уже сделал PIVOT, но с таблицей, содержащей три колонки, где содержащаяся один значения для заголовков в сводной таблице. В этом случае значения для заголовка отсутствуют, поэтому я не знаю, как это сделать.
Спасибо за помощь
Есть ли ограничение на количество секторов и/или номер, который вы хотите отобразить? Любой отдельный запрос имеет фиксированную «форму» (количество столбцов, их имена и типы данных), поэтому, если вам нужно поддерживать неограниченное число, вы ищете динамический SQL для построения запроса. –
Как вы получили этот заказ 'сектор 1, сектор 2..' –