我有困難的時候弄清楚這個請幫我 我有時間進/出SQL查詢 我有一張表,如下所示。有四列顯示時間輸入/輸出信息,如...將行轉換爲Sql查詢中的列
Date Day Day TimeStamp CheckType
10/11/2014 Sat 8:30 am in
10/11/2014 Sat 11:30am out
10/11/2014 Sat 1:30pm in
10/11/2014 Sat out
10/12/2014 Sun 9:00am in
10/12/2014 Sun 11:20pm out
10/12/2014 Sun 5:20pm out
10/13/2014 Mon 8:00am in
10/13/2014 Mon 6:10pm in
所以誰簽入或簽退,則記錄會按順序顯示的結果,如果有人應該看看,但在按鈕按下意外再這將顯示,因爲它是(在),或者如果有人忘記檢查那麼空間會顯示空白
我想行轉換成列,並顯示這些信息在下面
Date Day Time Type Time Type Time Type Time Type etc-----
10/11/2014 Sat 8:30am in 11:30am out 1:30pm in
10/12/2014 Sun 9:00am in 11:20am out 1:20pm in 6:20pm in
10/13/2014 Mon 8:00am in 6:10pm out
10/14/2014 Tus 8:20am in
etc
我曾嘗試使用樞軸
select Date, Day, [1],[2],[3],[4],[5],[6],[7],[8],[9],[10] etc---
from
(
select Date, Day, Stamptime, CheckTime, userID
from a table
)
pivot
(
max(StampTime)
for stamptime in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10] etc---)
) as PivotTable
任何人都可以解釋如何將行轉換爲我已經花了很多天的列。
SQL小提琴:HTTP:/ /sqlfiddle.com/#!6/0174d(在原始表上有一些優化) – JohnLBevan 2014-10-12 02:02:42
你不能這樣做(在數據庫中;在用戶界面是好的)。問題是有一天您可能會有一次入住,第二天您可能會有兩次入住和一次退房。這意味着第一天所需的列數不同於第二天所需的列數。這也意味着你不知道你需要的最大列數。您可以通過輸出到XML而不是表格數據來解決它,但實際上我認爲您正在爲自己創造痛苦/應該重新評估解決問題的方法。 – JohnLBevan 2014-10-12 02:16:36