我有一個考勤表,工作人員時鐘輸入/輸出,佈局如下:查詢一個考勤數據庫
employeeID Clock-in DateTime Clock Type
1004 24/09/2013 13:08 in
1004 25/09/2013 00:50 out
1005 24/09/2013 12:08 in
1005 25/09/2013 03:55 out
2003 24/09/2013 10:06 in
2003 24/09/2013 15:42 out
2003 24/09/2013 17:33 in
2003 24/09/2013 22:17 out
我怎樣才能得到它是這樣的:
Date employeeID Clock-in Clock-out time worked (in hours to 2 decimal place)
24/09/2013 1004 24/09/2013 13:08 25/09/2013 00:50 xx.xx
24/09/2013 1005 24/09/2013 12:08 25/09/2013 03:55 xx.xx
24/09/2013 2003 24/09/2013 10:06 24/09/2013 15:42 xx.xx
24/09/2013 2003 24/09/2013 17:33 24/09/2013 22:17 xx.xx
注意:
- 員工可以在輸入/輸出(即上午/下午,夜班)多個時鐘
- 日期從
04:00:00
到03:59:59
(即,在上面的例子中,所有分類爲24/09/2013
) - 我怎樣才能處理記錄沒有時鐘?我可以設置類似如果
null
,時間等於下一個日期03:59:59
?
在此先感謝。
我更新了jods建議如下:
例3套進/出記錄
EmployeeID CardDate PunchType
1000 21/09/2013 07:43 in
1000 21/09/2013 11:29 out
1000 21/09/2013 12:39 in
1000 21/09/2013 20:37 out
1000 21/09/2013 21:58 in
1000 22/09/2013 00:16 out
查詢返回
Date EmployeeID clockInTime clockOutTime
21/09/2013 1000 07:43:57 00:16:22
21/09/2013 1000 21:58:40 11:29:22
這張桌子上沒有PK嗎?或者,一個給定的員工是否可以在一分鐘內不進入/退出 - 使整個記錄具有唯一性。 – Orbling
和你正在使用哪個版本的sqlserver?它有所作爲 –
表中有一個主鍵,但它有某種哈希。時鐘/輸入和時鐘/輸出在第二,因此每個記錄是唯一的 – user549410