我有兩個表:tblSizes和tblColors。 tblColors具有名爲ColorName,ColorPrice和SizeID的列。有一種尺寸可以製成多種顏色。我需要編寫一個查詢來選擇大小和所有顏色(作爲列)的大小,每個大小的價格在其各自的列中。如何在SQL中選擇記錄作爲列
顏色必須返回欄目,例如:
SizeID : Width : Height : Red : Green : Blue
1---------220-----220----£15----£20-----£29
希望這是有道理
謝謝
編輯:嘗試下面的代碼,但不能肯定什麼是錯的:
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 2011-02-01 15:22:50
你在使用什麼數據庫引擎? – Lamak 2011-02-01 15:25:23
@Lamak - 我正在使用MSSQL。 – Leigh 2011-02-01 15:36:58