my--考勤表B
- 格式:xls
- 大小:617.50 KB
- 文档页数:6
考勤表做法
考勤表是用于记录员工出勤情况的表格,通常包括员工姓名、日期、上班时间、下班时间、出勤状态等信息。
以下是一个简单的考勤表做法示例:
1. 打开电子表格软件(如Excel)。
2. 在第一行输入表头信息,如“姓名”、“日期”、“上班时间”、“下班时间”、“出勤状态”等。
3. 在第二行及以下行中,对应输入员工的姓名和日期。
4. 在“上班时间”和“下班时间”列中,输入员工的上班和下班时间。
可以使用时间格式,如“HH:MM”。
5. 在“出勤状态”列中,根据员工的出勤情况选择合适的选项,如“出勤”、“缺勤”、“迟到”、“早退”等。
6. 根据需要,可以添加其他列,如“加班时间”、
“请假时间”等。
7. 为了方便统计和分析,可以使用函数来计算出勤时长、加班时长、请假时长等。
例如,可以使用`=B2-A2` 来计算出勤时长。
8. 根据公司的考勤政策和需求,对考勤表进行格式化和美化,如添加边框、背景色、字体样式等。
9. 保存考勤表,并根据需要定期更新和打印。
⼈员考勤,MySQL数据库⼀个表⾃动⽣成3表筛选⼈员迟到早退缺勤前⾔:漂亮的⼈事⼩姐姐找我帮忙弄考勤:由于⼈员考勤和门禁⼀起,打卡记录太多,打卡机只能导出⼀个打卡Excel总表,不容易⼈⼯筛选。
Excel表的格式是这样的:(这⾥101代替真实⼈名)实现⽬标:8:30上班,5:30下班,可以导出⼯作⽇来公司⼈员迟到早退和没来公司⼈员的缺勤情况表,这两个结果表。
也可以导出每⼈每天最早打卡最晚打卡记录表。
这个表需要导⼊MySQL数据库进⾏筛选。
迟到早退好判断,其实这⾥最难判断的是全天缺勤,因为打卡机没有任何记录。
需要⾃动⽣成⼈员表(把不打卡⼈去掉),上班⽇期表(把⾮⼯作⽇去掉),打卡表(每⼈每天最早最晚打卡)3个表联查的。
1.先把Excel表格转下格式(分列)转完后格式这样了2.把表格导⼊MySQL数据库3.因为⼈员在变动,每回给的打卡表⼈员不会⼀模⼀样,需要⾃动⽣成⼈员表(把不打卡⼈去掉),上班⽇期表(把⾮⼯作⽇去掉),打卡表(每⼈每天最早最晚打卡)3个表联查的。
-- -- 删除不⽤打卡记录⼈员-- -- 删除不⽤打卡记录⼈员DELETE FROM `考勤明细` WHERE `姓名` IN ('boss','张总','钟总','吴总');---- --创建上班⽇期表动态:超过⼀半⼈打卡加班算⼯作⽇:80是全体⼈员每天打卡次数,超过80代表上班⽇期,正常⼀天打卡110左右,周末单独来公司开门打卡的⼈不会超过80次打卡DROP TABLE if exists d;CREATE TABLE d (SELECT `⽇期时间` FROM `考勤明细` WHERE (f5 <'08:30:00') OR (f5 >'17:30:00') GROUP BY `⽇期时间` HAVING COUNT(`姓名`) > 80);-- SELECT * FROM d;---- -- 创建⼈员临时表格DROP TABLE if exists u;CREATE TABLE u (SELECT `姓名` FROM `考勤明细` GROUP BY `姓名`);-- SELECT * FROM u;---- -- 创建考勤明细表DROP TABLE if exists k;CREATE TABLE k (SELECT * ,min(`f5`) as "最早打卡", max(`f5`) as "最晚打卡" FROM `考勤明细` GROUP BY `姓名`,`⽇期时间` ORDER BY `⽇期时间`,`姓名`);-- SELECT * FROM k ORDER BY `姓名`,`⽇期时间`;-- 早上没打卡-- -- 晚上没打卡,这应该链接上班⽇期d表SELECT `姓名`,`⽇期时间`,`f4` as '星期',`最早打卡`,`最晚打卡`,'迟到' FROM k WHERE `最早打卡` >'08:30:00' AND f4 !='星期⽇' AND f4 !='星期六'UNIONSELECT `姓名`,`⽇期时间`,`f4` as '星期',`最早打卡`,`最晚打卡`,'早退' FROM k WHERE `最晚打卡` <'17:30:00' AND f4 !='星期⽇' AND f4 !='星期六' ORDER BY `姓名`,`⽇期时间`;第2种写法:(SELECT k.`姓名`,k.`⽇期时间`,k.`f4` as '星期',k.`最早打卡`,k.`最晚打卡`,'迟到' FROM k RIGHT JOIN d on k.`⽇期时间` = d.`⽇期时间` WHERE k.`最早打卡` >'08:30:00')UNION(SELECT k.`姓名`,k.`⽇期时间`,k.`f4` as '星期',k.`最早打卡`,k.`最晚打卡`,'早退' FROM k RIGHT JOIN d on k.`⽇期时间` = d.`⽇期时间` WHERE `最晚打卡` <'17:30:00' )ORDER BY `姓名`,`⽇期时间`;---- 早上也没打卡,晚上也没打卡,但是来了(这个不⽤了,上⾯能查出来)-- SELECT * FROM t2 WHERE `最早打卡` >'08:30:00' AND `最晚打卡` <'17:30:00' AND f4 !='星期⽇' AND f4 !='星期六' GROUP BY `姓名`,`⽇期时间`---- SELECT k.*,'全天缺勤' from d INNER join u on 1=1 LEFT join k on u.`姓名`= k.`姓名` order by d.`⽇期时间`,k.`姓名`;--select b.*,'全天缺勤' from k aright join (select * from u b,(select distinct `⽇期时间` from d) c) b on a.`姓名`=b.`姓名` and a.`⽇期时间`=b.`⽇期时间`WHERE a.`姓名` IS NULL--结果如下好了,可以给⼩姐姐了。
月考勤表mysql动态月考勤表MySQL动态一、引言月考勤表是企业管理中非常重要的一项工作,它记录了员工的出勤情况,对于企业的管理和统计都起到了至关重要的作用。
本文将介绍如何使用MySQL数据库来动态管理和统计月考勤表,以提高企业的工作效率和管理水平。
二、数据库设计在MySQL数据库中,我们可以使用表来表示月考勤表。
首先,我们需要创建一个员工表,包含员工的基本信息,如员工编号、姓名、部门等。
接下来,我们创建一个考勤表,包含考勤记录的详细信息,如日期、上班时间、下班时间等。
员工表和考勤表可以通过员工编号来建立关联关系,便于查询和统计。
三、数据录入通过MySQL数据库,我们可以使用INSERT INTO语句来向员工表和考勤表中插入数据。
例如,我们可以通过以下语句向员工表中插入一条员工记录:INSERT INTO employee (employee_id, name, department) VALUES ('001', '张三', '销售部');同样地,我们可以通过以下语句向考勤表中插入一条考勤记录:INSERT INTO attendance (employee_id, date, start_time,end_time) VALUES ('001', '2021-01-01', '08:00:00', '17:00:00');四、数据查询使用MySQL数据库,我们可以使用SELECT语句来查询月考勤表中的数据。
例如,我们可以通过以下语句查询某个员工在某个月份的考勤记录:SELECT * FROM attendance WHERE employee_id = '001' AND date LIKE '2021-01%';此查询语句将返回员工编号为001的员工在2021年1月份的所有考勤记录。