如何查最后一次的打卡记录?

比如下面是一个人3月8号的打卡记录,SQL语句如何写能查出08:05:35和23:29:04这两条记录,把重复打卡的记录过滤掉,或者在FineReport报表中有办法过滤掉吗(数据库为MySql)?

image.png

2490322874 发布于 2021-3-11 10:43 (编辑于 2021-3-11 10:45)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
烟尘Lv6高级互助
发布于2021-3-11 10:45(编辑于 2021-3-11 10:46)

select min(打卡时间),max(打卡时间),日期,人 from 表 group by 日期,人

用这个做基础表,然后再查询是否迟到早退之类的。

最佳回答
0
ScyalcireLv7中级互助
发布于2021-3-11 10:46(编辑于 2021-3-11 10:53)

因为你不是取早上最小的打卡日期,是最晚的

但是你这只是同一个时分下的  如果是早上2021-03-08 08-06-12.000打的卡,那就应该取我这个数了

但是这个时候【时】一样,【分】不一样,很难判断

把日期一个个截取,然后比较相同的年,月,日,时,分下最大的秒数

或者直接把打卡日期分成上班,下班两个字段,都取最大值就行了

最佳回答
0
snrtuemcLv8专家互助
发布于2021-3-11 10:46

select min(日期字段) from 表    最早时间

select max(日期字段) from 表    最迟时间

最佳回答
0
青鸟ekkoLv6见习互助
发布于2021-3-11 11:29(编辑于 2021-3-11 11:30)

如果你们公司午休两小时的话

我有个简单的方式

只需在数据库设置两个主键即可

第一个;员工的工号(这个应当唯一吧)

第二个:将上面的时间记录精确到小时( 即截取记录到 2021-03-08 :08 这种精度)存储到数据库中作为主键

这样的话,每个人每小时将只有一条记录,每条记录都是最新的,你可以按照这个思路来结合你那边的实际情况确认下精度,当然帆软也可以搞,数据库简单点

  • 5关注人数
  • 382浏览人数
  • 最后回答于:2021-3-11 11:30
    请选择关闭问题的原因
    确定 取消
    返回顶部