SQL语言考勤打卡记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语言考勤打卡记录相关的知识,希望对你有一定的参考价值。

ID card_time
--------------------------------
a 2008-07-15 07:42:12.000
a 2008-07-16 07:47:52.000
a 2008-07-17 07:59:12.000
a 2008-07-18 07:08:37.000
a 2008-07-19 07:05:47.000
a 2008-07-20 07:25:36.000
b 2008-07-15 07:22:12.000
b 2008-07-16 07:05:52.000
b 2008-07-17 07:20:36.000
b 2008-07-18 08:05:47.000
b 2008-07-20 07:25:36.000
c 2008-07-15 07:07:12.000
c 2008-07-16 07:33:52.000
c 2008-07-17 08:01:12.000
c 2008-07-18 07:08:37.000
c 2008-07-19 08:05:22.000
c 2008-07-20 09:25:36.000

以上是一张员工考勤表,8点钟以后视为迟到,9点以后或者没有没有打卡记录的视为旷工,
统计结果:

ID 迟到次数 旷工次数 总的打卡次数
a 0 0 6
b 1 1 5
c 1 1 6

用SQL语言怎么写?

首先要有一个工厂日历的表,列出所有工作日,至少一个字段:工作日 varchar(10)。
然后这样即可:
select id,
迟到次数=sum(case when timec>'08:00:00' tand timec<'09:00:00' then 1 else 0 end),
旷工次数=sum(case when timec>'09:00:00' or timec is null then 1 else 0 end),
打卡次数=sum(case when timec is null then 0 else 1 end)
from
(
SELECT * FROM 工厂日历 left join
(select id,
datec=convert(varchar(10),card_time,120),
timec=substring(convert(varchar,card_time,120),12,8)
from tablename
) a
on 工作日=DATEC
) b
group by ID
参考技术A 假设这个表的名称叫做 work,来存储打卡的时间信息
select ID,
sum(case when card_time>='%-%-% 08:00:00' and card_time<='%-%-% 08:59:59' then 1 else 0 end ) as '迟到次数',
sum(case when card_time>='%-%-% 09:00:00' or card_time='' then 1 else 0 end ) as '旷工次数',
sum(case when card_time<>'' then 1 else 0 end) as '总的打卡次数'
from work
group by ID
不知道时间这么表示对不对

指纹打卡机如何与手机联接

手机支持打卡机APP模式就可以了。

指纹打卡机都有对应的SDK开发包,多为OCX,里边有各种可以操作指纹机的函数,如读取考勤机出入记录,下发注册信息,读取注册信息,删除注册信息,设置管理员。

接口中提供多种通讯方式(串口、TCPIP、USB)。一般考勤机SDK都是免费提供,带有文档及各种语言的demo,知名品牌考勤机在官方网站都可以直接下载。

指纹打卡机分两大类:

1、简单打印类,打卡时,原始记录数据通过考勤机直接打印在卡片上,卡片上的记录时间极为原始的考勤信息,对初次使用者无需做任何事先的培训即可立即使用。

2、存储类,打卡时,原始记录数据直接存储在考勤机内,然后通过计算机采集汇总,再通过软件处理,最后形成所需的考勤信息或查询或打印,其考勤信息灵活丰富,对初次使用者需做一些事先培训才能逐渐掌握其全部使用功能。

参考技术A 指纹打卡机都有对应的SDK开发包,多为OCX,里边有各种可以操作指纹机的函数,如读取考勤机出入记录,下发注册信息,读取注册信息,删除注册信息,设置管理员。接口中提供多种通讯方式(串口、TCPIP、USB)。一般考勤机SDK都是免费提供,带有文档及各种语言的demo,知名品牌考勤机在官方网站都可以直接下载。参考:知名品牌考勤机官网 参考技术B 回答

亲,很高兴为您解答1.把考勤机通电,打开机器,使机器处于正常工作状态。2.在考勤机操作面板上按主菜单[MENU]–[用户管理]–[用户登记]–[指纹登记],屏幕提示“新登记?”,按[OK]键,这个时候要输入员工的工号,输入后按[OK]确认,此时屏幕提示:“请放手指”。3.放手指时要注意,被采集者身体相对考勤机要站正。把从指尖开始2/3位置指肚非常饱满的平放在采集器玻璃片上,不要滑动手指,轻轻用力按压,听到“嘀”的一声移开手指,同样进行第2次第3次按压,按压3次为采集了一枚完整的指纹。4.3次按压完成后,按[OK]保存。此时屏幕提示:‘新登记?’我们可按[ESC]键,进行备份登记,每个员工可以采集至少2枚指纹,以备其中一个有磨损破裂时使用。5.备份完成后,按[OK]保存,此时屏幕提示:“继续备份吗?”如果要继续进行备份请按[OK],要结束备份请按[ESC],并进行下一个员工的指纹登记。

参考技术C 要你的打开机支持APP模式才可以。

以上是关于SQL语言考勤打卡记录的主要内容,如果未能解决你的问题,请参考以下文章

SQL 统计每日上班打卡和下班打卡语句

指纹打卡机如何与手机联接

SQL如何判断打卡记录是不是异常?

EF考勤打卡机怎么删除月考勤记录

获取钉钉考勤机打卡记录

问一个考勤SQL语句的问题,想查询一整月考勤记录