我輸入的是:移調行的列沒有聚集和顯示的列標題的第一列在SQL Server 2008
date Costed Celldata
8-Apr-13 1 15
15-Apr-13 1 24
22-Apr-13 1 36
我需要輸出爲:
date 8-Apr-13 15-Apr-13 22-Apr-13
Costed 1 1 1
Celldata 15 24 36
查詢我申請的是:
CREATE TABLE testing1(Spot_dt date, Costed INT, celldata INT)
INSERT INTO testing1 (Spot_dt,Costed,celldata) values ('2012-04-08',1,15);
INSERT INTO testing1 (Spot_dt,Costed,celldata) values ('2012-04-15',1,24);
INSERT INTO testing1 (Spot_dt,Costed,celldata) values ('2012-04-22',1,36);
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Spot_dt)
from testing1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT Costed,' + @cols + '
from
(
select Spot_dt, Costed, CellData
from testing1
) x
pivot
(
min(CellData)
for Spot_dt in (' + @cols + ')
) p '
execute(@query)
專家把我recieving是:
8-Apr-13 15-Apr-13 22-Apr-13
1 1 1
15 24 36
所以基本上我需要一個額外的列在開始時我可以有列標題來作爲行值。
可能的重複http://stackoverflow.com/questions/428041/sql-server-2005-turn-columns-into-rows和可能還有更多。請在發佈問題之前進行搜索。 – 2013-04-25 07:24:23
您提供的代碼中的數據與問題開始時輸入數據表中的數據不匹配 - 特別是,代碼中沒有未加密的數據。另外,你說你想要的輸出與你所說的輸出(它與你提供的代碼的輸出不匹配)完全匹配。請你能澄清你的問題嗎? – 2013-04-25 07:29:20
嗨@MarkBannister,謝謝你的qucik回覆。我發佈了正確的數據和立即查詢。等待你的答覆。我主要關心的是我需要輸出的第一列。第一個表的列標題應該作爲行值。就像我們在EXCEL中做簡單的轉置一樣。 – Panwar 2013-04-25 07:44:27