【SQL】從一張考勤表tb_cwa中找出員工每天的上班、下班打卡具體時間---第二篇

繼上一篇https://blog.csdn.net/debimeng/article/details/104113932的思考

假如該公司存放的打卡時間不僅僅上下班兩次打卡,還包含了中午外出吃飯打的卡,就是說每個人每天打卡次數大於2次;
這樣的話上一篇寫的SQL就獲取不到準確的上下班時間,

考勤表相關字段如下下:ID、NAME、NO、TIME

ID  NAME         NO          TIME
1   zhangsan    1001         2020-01-01 08:34:40
2   lisi        1002         2020-01-01 08:39:29
3   wangwu      1003         2020-01-01 08:44:38
4   zhangsan    1001         2020-01-01 18:24:18
5   lisi        1002         2020-01-01 18:34:28
6   wangwu      1003         2020-01-01 18:54:20
7   wangwu      1003         2020-01-01 12:34:20
8   wangwu      1003         2020-01-01 12:54:20
日期          姓名              上班時間                    下班時間
2020-01-01    zhangsan          2020-01-01 08:34:40         2020-01-01 18:24:18
2020-01-01    lisi              2020-01-01 08:39:29         2020-01-01 18:34:28
2020-01-01    wangwu            2020-01-01 08:44:38         2020-01-01 18:54:20

解決:

select date_format(time,'%Y-%m-%d')     as '日期'
      ,name                             as '姓名'
      ,min(time)                        as '上班時間'
      ,max(time)                        as '下班時間'
  from tb_cwa
 group by name,date_format(time,'%Y-%m-%d')
;

日期          姓名          上班時間                    下班時間
2020-01-01  zhangsan        2020-01-01 08:34:40         2020-01-01 18:24:18
2020-01-01  lisi            2020-01-01 08:39:29         2020-01-01 18:34:28
2020-01-01  wangwu          2020-01-01 08:44:38         2020-01-01 18:54:20

備註:建表和數據

create table tb_cwa(id int,name varchar(10),no int,time datetime);
insert into tb_cwa values(1,'zhangsan',1001,'2020-01-01 08:34:40');
insert into tb_cwa values(2,'lisi',1002,'2020-01-01 08:39:29');
insert into tb_cwa values(3,'wangwu',1003,'2020-01-01 08:44:38');
insert into tb_cwa values(4,'zhangsan',1001,'2020-01-01 18:24:18');
insert into tb_cwa values(5,'lisi',1002,'2020-01-01 18:34:28');
insert into tb_cwa values(6,'wangwu',1003,'2020-01-01 18:54:20');
insert into tb_cwa values(7,'wangwu',1003,'2020-01-01 12:34:20');
insert into tb_cwa values(8,'wangwu',1003,'2020-01-01 12:54:20');

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章