首页  >  问答  >  正文

获取那些连续休假11天的员工的记录

<p>我有一个考勤记录,包含员工编号、状态和出勤日期的字段。 我想使用SQL查询来获取那些连续11天请假的员工记录。 条件是,如果员工的出勤状态连续11天是请假、缺勤或未标记出勤(在考勤文档中不存在的日期记录),包括周末。</p> <p>条件可以是所有状态的混合,即请假、缺勤或未标记出勤。</p>
P粉014218124P粉014218124402 天前449

全部回复(1)我来回复

  • P粉893457026

    P粉8934570262023-08-17 12:58:40

    这个查询找到在考勤记录中有连续11天“请假”、“缺席”或“未标记”状态的员工。它将员工数据与考勤数据连接起来,过滤特定的状态和日期范围,对数据进行分组,然后仅选择那些记录数为11的组。

    SELECT DISTINCT a.employee_code
    FROM employees e
    JOIN attendance a ON e.employee_code = a.employee_code
    WHERE a.attendance_date BETWEEN a.attendance_date AND DATE_ADD(a.attendance_date, INTERVAL 10 DAY)
      AND a.status IN ('请假', '缺席', '未标记')
    GROUP BY a.employee_code, a.attendance_date
    HAVING COUNT(*) = 11;

    如果这个查询对您不起作用,请分享您的模式。如果这个查询有任何错误,请指出。

    回复
    0
  • 取消回复