У меня есть две таблицы: tblSizes и tblColors. tblColors имеет столбцы ColorName, ColorPrice и SizeID. Существует один размер для нескольких цветов. Мне нужно написать запрос, чтобы выбрать размер и все цвета (в виде столбцов) для этого размера с ценой каждого размера в соответствующем столбце.Как выбрать записи как столбцы в SQL
цвета должен быть возвращен в виде столбцов, например:
SizeID : Width : Height : Red : Green : Blue
1---------220-----220----£15----£20-----£29
Надеется, что это имеет смысл
Спасибо
Edit: Попробовал следующий код, но не совсем уверен, что это не так:
DECLARE @Colors NVARCHAR(4000), @Query NVARCHAR(MAX)
SET @Colors = ''
SELECT @Colors = @Colors + '[' + C.Color +'],'
FROM tblTempProductSizesColors SC
INNER JOIN tblColors C on SC.ColorID=C.ID
GROUP BY Color
ORDER BY Color
SET @Colors = LEFT(@Colors,LEN(@Colors)-1)
SET @Query = '
SELECT *
FROM ( SELECT TS.Sizeid, TS.Width, TS.Height, TS.Depth, TC.Price
FROM tblTempProductSizes TS
INNER JOIN tblTempProductSizesColors TC
ON TS.SizeId = TC.SizeId INNER JOIN tblColors C on TC.ColorID=C.ID) A
PIVOT(SUM(Price) FOR C.Color IN ('[email protected]+')) AS PT'
EXEC sp_executesql @Query
Почему вы не можете запрашивать базу данных, а затем поворачивайте результаты в формате, который вы хотите? – OrangeDog
Какой двигатель базы данных вы используете? – Lamak
@Lamak - Я использую MSSQL. – Leigh