我們有一個SQL 2008表,它按以下順序保存考勤數據。SQL時鐘數據操作
uid clock collectdate type 1 2012-10-30 16:13:07.000 2012-10-30 19:29:58.000 in 1 2012-10-30 21:18:50.000 2012-10-30 22:29:58.000 in 2 2012-10-30 16:13:07.000 2012-10-30 19:29:58.000 in 2 2012-10-30 21:18:50.000 2012-10-30 22:29:58.000 in
正確的順序是將「類型」欄作爲輸入和輸出。但這正是我所面臨的問題,因爲該系統正用於管理承包商和兼職人員,他們總是錯過按下正確的按鈕,或者根本沒有在進入或退出打卡之前的時鐘。
目前,我們依賴於這個存儲過程把時鐘進度數據以正確的順序
INSERT INTO attendanceTBL (UID,CollectDate,Clockin,Clockout) SELECT UID ,CollectDate ,MAX(case when type = 'in' then clock end) clockin ,MAX(case when type = 'Out' then clock end) clockout From RAWCLOCKTBL GROUP BY UID,CollectDate RETURN
有什麼辦法,我可以而忽略了正確的順序「時鐘」值轉移到同一行「類型」欄。即將上表移動到。
uid clock clock 1 2012-10-30 16:13:07.000 2012-10-30 21:18:50.000 2 2012-10-30 16:13:07.000 2012-10-30 21:18:50.000
這可能只是我,對不起。但是,您希望的輸出與SELECT uid,MIN(clock),MAX(clock)FROM attendanceTBL GROUP BY uid'不同的是什麼? – MatBailie
這會給我結果的整個日期時間範圍每日最小,最大時間instate。 – Bladefreak