我正在嘗試計算每個用戶的小時數。一位用戶每天可以檢查和檢查多次。多個記錄的時間戳處理
除了事件檢查和簽出,我還有兩個(業務和私人)。
如果用戶在同一天的最後一次CHECK OUT和最後一次CHECK IN之間有事件BUSINESS,則最後一次CHECK OUT和CHECK IN之間的時間將被視爲工作時間。
如果CHECK OUT後他有一個BUSINESS事件作爲最後一條記錄,它將計算小時數(退房時間 - CHECK IN + BUSINESS = 8)。
在表中我有一個地方可以爲每個用戶記錄事件。
CASE 1
ID USERID TIME COMMAND
1 1 2016-11-29 08:00:00 CHECK_IN
2 1 2016-11-29 10:05:14 CHECK_OUT
3 1 2016-11-29 12:22:14 BUSINESS
4 1 2016-11-29 13:32:14 CHECK_IN
5 1 2016-11-29 16:00:00 CHECK_OUT
根據上面的表格,我應該得到的是用戶對特定天累計工作8小時。
CASE 2
ID USERID TIME COMMAND
1 1 2016-11-29 08:00:00 CHECK_IN
2 1 2016-11-29 10:05:14 CHECK_OUT
3 1 2016-11-29 12:22:14 PRIVATE
4 1 2016-11-29 13:32:14 CHECK_IN
5 1 2016-11-29 16:00:00 CHECK_OUT
在上述上次檢出(ID 2)和最近檢查之間的時間的情況下在(ID 3)不工作時間計數。
我想使腳本來計算每個員工在每月的每一天的工作時間。
我在如何用最近的CHECK_IN減去CHECK_OUT時間時遇到問題,當用戶有一天有多個記錄時會發生該問題。
有往往不是一個「 「CHECK_OUT」條目和以下「CHECK_IN」條目之間的「BUSINESS」或「PRIVATE」條目? –
它可以是BUSINESS或PRIVATE全天,如果是業務,那麼當天用戶將獲得8小時,如果PRIVATE用戶將獲得當天0小時。但是如果他離開工作,那麼首先總是CHECK_OUT條目,如果他回來工作CHECK_IN。但是每天可以有更多的業務分錄 – user3651819
似乎有很多邏輯特定於您的案例。你應該先嚐試解決這個問題,然後在遇到困難時詢問具體的問題。說「我不知道從哪裏開始」(這是我從你的問題中得到的感覺)在這裏並不適合。 –