首页 新闻 会员 周边

SQL 考勤统计语句

0
悬赏园豆:40 [待解决问题]
1 Card_NO      Atte_Time               DoorInout
2 10890895    2013-08-10 16:04:00.000     1
3 10890895    2013-08-10 19:43:46.000     0
4 10890895    2013-08-10 20:24:14.000     1
5 10890895    2013-08-11 00:46:38.000     0
6 10890895    2013-08-11 16:04:49.000     1
7 10890895    2013-08-11 19:45:34.000     1
8 10890895    2013-08-11 20:18:14.000     1

有以上员工打卡记录表

其中

Card_No为考勤卡号

Atte_time 为打卡时间

DoorInout为上班或下班,1为上班,0位下班

想得到以下样式的表

-----------------------------------------

考勤卡号     日期     上班打卡 上班打卡1 上班打卡2  上班打卡3  下班打卡  下班打卡1 下班打卡2 下班打卡3
10890895  2013-08-10   16:04  20:24    NULL    NULL   19:43   2013-08-11 00:46    NULL    NULL
10890895  2013-08-11   16:04  19:45    20:18    NULL   NULL   NULL    NULL    NULL

 


如果下班在第二天3点以内的也统计入下班打卡中

下班打卡早于最早上班打卡的数据忽略
Phoenix_L的主页 Phoenix_L | 初学一级 | 园豆:162
提问于:2013-08-29 16:08
< >
分享
所有回答(4)
0

要是一个人上一个月的班,你不是要【上班打卡123......N】?

W宁宁 | 园豆:522 (小虾三级) | 2013-08-29 16:44

每人每个月的记录

下面的表只去了每天最早和最晚的记录,现在就是要在这个基础上把其他的上班或下班的打卡记录也加上来

支持(0) 反对(0) Phoenix_L | 园豆:162 (初学一级) | 2013-08-29 16:54

@Phoenix_L: 我也做过考勤的功能,先说一下:首先会有个排班(单位是串休,24小时有人值班),可得到每个人每天的上下班时间。其次员工打卡记录表是从打卡机里考出来的txt文件(一个月的所有打卡),可以在程序中很轻松的读取出来,读出来是在内存的DataTable里的,然后根据每个【考勤卡号】和【上/下班】做为条件用table.select()可以取到这个这个考勤卡所有的上班或者下班的打卡记录,然后放表中,存数据库。

我们人事比较懒。需要我们取上下班前后一小时内的第一条打卡,还要判断有没有迟到早退。

支持(0) 反对(0) W宁宁 | 园豆:522 (小虾三级) | 2013-08-30 08:07
0

原来的格式不是挺好的吗? 为什么要转成其它的啊

Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-29 17:06
0

有可能8月10号上班,上到11号凌晨下班。有班次对应的日期的字段么。

+小马哥++ | 园豆:906 (小虾三级) | 2013-08-29 17:15
0

826301379  包20元红包给你一份  我也用钱买的

jikverking | 园豆:202 (菜鸟二级) | 2017-11-19 17:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册