>  Q&A  >  본문

11일 연속 출근하지 않은 직원 구하기

<p>11일 연속 출석을 표시하지 않은 직원을 데이터베이스에서 가져오려고 합니다. 이를 위해 직원 테이블과 출석 테이블이 있지만 이것에 대한 문제는 출석 테이블에 기록이 없다는 것입니다. 그러면 어떻게 얻을 수 있습니까</p> <p>많은 쿼리를 시도했는데 그 중 일부는 다음과 같습니다. </p> <pre class="brush:php;toolbar:false;">SELECT e.name, e.full_name FROM tabEmployee e 왼쪽 조인( 선택하다 직원, 직원 MIN(attendance_date) AS first_attendance_date FROM 탭출석 직원별 그룹 ) ar ON e.name = ar.employee ar.first_attendance_date가 NULL인 경우 또는 존재하지 않습니다( 1개를 선택하세요 FROM 탭출석 WHERE 직원 = e.name AND 출석_날짜 >= ar.first_attendance_date AND 출석_날짜 < DATE_ADD(ar.first_attendance_date, INTERVAL 11 DAY) )</pre> <p>다른 검색어:</p> tabEmployee e에서 <pre class="brush:php;toolbar:false;">SELECT e.name, COUNT(a.`attendance_date`), COUNT(e.`name`) LEFT JOIN 탭Attendance a ON e.name = a.`employee` a.`employee`가 NULL인 경우 GROUP BY e.`이름`</pre> <p><br /></p>
P粉103739566P粉103739566428일 전457

모든 응답(1)나는 대답할 것이다

  • P粉231079976

    P粉2310799762023-08-19 07:58:16

    LAG() 분석 기능을 사용하여 다음을 시도해 볼 수 있습니다.

    으아악

    여기서 기본 전략은 CTE에서 출석 날짜의 시차(이전 연속 값)를 생성하는 것입니다. 그런 다음 11일 이상의 공백이 있는 직원만 보고합니다.

    회신하다
    0
  • 취소회신하다