可能重複:
T-SQL Pivot? Possibility of creating table columns from row valuesSQL查詢透視與動態列
我徒勞的在尋找太久,現在不得不承認失敗,尋求幫助,我m試圖修改數據透視查詢以產生來自具有如下數據的表的動態查詢結果:
UserId PageViewed DateTimeStamp
1 Index.html 2011-12-01 13:55:01
1 FAQ.html 2011-12-01 13:58:53
1 ContactUs.html 2011-12-01 14:00:16
2 Index.html 2011-12-01 15:55:01
2 FAQ.html 2011-12-01 15:58:53
2 ContactUs.html 2011-12-01 15:00:16
要顯示這樣的事情,在頁面的列數取決於用戶訪問的網頁數量:
User StartTime Page1 Page2 Page3
1 13:55:01 Index.hml FAQ.html ContactUs.html
2 15:55:01 Index.hml FAQ.html ContactUs.html
我已經硬編碼在列,但很明顯,我不希望它管理不斷改變腳本以適應越來越多的頁面。
到目前爲止,我沿着線的東西:
SELECT p.UserId,
CONVERT(TIME, MIN(p.DateTimeStamp), 7) StartTime,
ISNULL(p.[1],'') Page1
ISNULL(p.[1],'') Page2
ISNULL(p.[1],'') Page3
FROM
(SELECT UserId
,DateTimeStamp
,PageViewed
,ROW_NUMBER() OVER(PARTITION BY UserId ORDER BY DateTimeStamp) as pOrder
FROM tbl) AS p
PIVOT(MIN(PageViewed) FOR pOrder IN ([1],[2],[3]))
在正確的方向上沒有任何幫助或指針將不勝感激!
在此先感謝!
這裏的輸出對我沒有意義。你能爲此提供一個用例嗎?也許有更好的方法?我發現頂部X頁面更適合於數據透視/報告,而不是每個頁面都適合列。 –