Re: [SQL ] 時間RowData轉甘特圖已刪文

看板Database (資料庫)作者 (可愛小孩子)時間5年前 (2019/05/18 02:07), 編輯推噓1(101)
留言2則, 1人參與, 5年前最新討論串2/4 (看更多)
select 人, 開始 = min(時間), 結束 = max(時間) from TableA group by 人 ※ 引述《carsun00 (永夜)》之銘言: : 資料庫名稱:SQL Server 2017 : 資料庫版本:14.0.2002.14 : 內容/問題描述: : 資料來源是狀態&Time的資料表 : 需要轉換成開始與結束的資料格式 : 同時可能會有多筆開始多筆結束 : 要取出最早時間與最晚時間 : 是有想出一個堪用的語法... : 但是想知道有沒有比較好的做法.. : 資料如下 : 狀態 | 人| 時間 : 進入 | AA| 2019-05-10 09:00:00.000 : 進入 | AA| 2019-05-10 09:00:00.000 : 進入 | AA| 2019-05-10 09:00:00.000 : 離開 | AA| 2019-05-10 18:00:00.000 : 離開 | AA| 2019-05-10 18:10:00.000 : 離開 | AA| 2019-05-10 19:00:00.000 : 離開 | AA| 2019-05-10 20:00:00.000 : 進入 | BB| 2019-05-10 10:00:00.000 : 進入 | BB| 2019-05-10 11:00:00.000 : 進入 | BB| 2019-05-10 11:30:00.000 : 離開 | BB| 2019-05-10 20:00:00.000 : 離開 | BB| 2019-05-10 20:00:00.000 : 離開 | BB| 2019-05-11 20:00:00.000 : 人| 開始 | 結束 : AA| 2019-05-10 09:00:00.000 | 2019-05-10 20:00:00.000 : BB| 2019-05-10 10:00:00.000 | 2019-05-11 20:00:00.000 : SQL語法如下 : SELECT : StartData.[User] : , StartData.[Start_Date_Time] : , EndData.[End_Date_Time] : FROM : ( SELECT : ROW_NUMBER() OVER(PARTITION BY [User] ORDER BY : CONVERT(VARCHAR(20), [Time], 111)) AS Num : , 1 + ROW_NUMBER() OVER(PARTITION BY [User] ORDER BY : CONVERT(VARCHAR(20), [Time], 111)) AS Num2 : , [User] : , CONVERT(VARCHAR(20), [Update_Time], 111) AS [Start_Date_Time] : FROM : TableA : GROUP BY : [User] : , CONVERT(VARCHAR(20), [Update_Time], 111) : ) AS StartData : LEFT JOIN : ( SELECT : ROW_NUMBER() OVER(PARTITION BY [User] ORDER BY : CONVERT(VARCHAR(20), [Time], 111)) AS Num3 : , [User] : , CONVERT(VARCHAR(20), [Update_Time], 111) AS [End_Date_Time] : FROM : TableA : GROUP BY : [User] : , CONVERT(VARCHAR(20), [Update_Time], 111) : ) AS EndData : ON StartData.[User] = EndData.[User] : AND StartData.Num2 = EndData.Num3; -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.170.105.74 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1558116438.A.565.html

05/18 11:59, 5年前 , 1F
謝謝,但是我發現我少加上一個欄位...
05/18 11:59, 1F

05/18 12:00, 5年前 , 2F
抱歉 晚上想睡覺OTL
05/18 12:00, 2F
文章代碼(AID): #1StlXMLb (Database)
文章代碼(AID): #1StlXMLb (Database)