오라클 SQL에서 날짜 범위의 데이터 누락을 발견하는 방법 직원 번호 (EMPNO)과 참석 날짜를 포함내가 테이블 (출석)가
EMPNO DATE
2 07/11/2016
2 07/12/2016
3 07/12/2016
6 07/13/2016
7 07/13/2016
을 다음과 같이 직원의 출석을 포함 (날짜)
그리고 다른 테이블 (직원)의 직원이 사용하여 특정 날짜에 결석했다면 내가 찾을 수있는이
EMPNO NAME
1 Musa
2 Ali
3 Khalid
6 James
7 Sara
같은 예를 들어 회사의 모든 empolyees을 포함 이 코드
select empno
from EMPLOYEES
where empno not in (select empno
from ATTENDANCE
where date = '07/11/2016')
내가이 쿼리
select empno
from EMPLOYEES
where empno not in (select empno
from ATTENDANCE
where date between '07/11/2016' and '07/13/2016' )
를 사용하려고
특정 범위 사이의 일에 결석 직원의 목록을 retreive 싶어하지만,이 날에없는 사람들을 줄 것이다 직원이 하루에 결석했다면 이 범위에있는 모든 일이 만이 retreive하지 않습니다 그것은
empno와 직원의 부재 날짜를 묻는 쿼리가 필요합니까?
업데이트 :이 작동하지만이 직원이 결석 날짜 에서 저를 포기하지 않을
select empno
from EMPLOYEES
where empno not in (select empno
from ATTENDANCE
group by empno
having count(empno) = to_date(' 07/09/2016','mm,dd,rrrr') - to_date('07/13/2016','mm,dd,rrrr'))
언급SAGI으로도이 시도 이
당신이 "주 일"을 구별해야합니까 또는 "근무일"과 "주말 또는 휴일"은 다른 한편으로는? 저는 일요일 (미국에서) 모든 직원이 "결석"하다고 생각합니다. – mathguy