单位考勤表如上图,包含姓名、签到日期、签到时间和签退时间。 需求是 若当日晚8:00后签退,则第二天可以顺延晚到不算迟到,但不超过中午13:00。比如昨天晚上21:55分签退,则今天早上10:55前到单位不计入迟到。想根据上述业务逻辑修正原始考勤表,但不知道怎么实现一张表里多个相关记录的修改,请教各位高手指点,谢谢。

解决方案 »

  1.   

    既然时考勤,那么数据量肯定不大
    首先使用row_number根据 日期和姓名 进行排序 , 同时计算出 第二天的考勤范围,然后再根据 lead 函数 进行计算 就可以得到 你要的迟到 早退信息
      

  2.   

    利用lag或者lead,order by checkdate,然后根据name来分组,能比较容易实现该需求