부서 관리자 정보는 dept_manager 테이블에 있고, 부서 정보는 departments 테이블에 있으므로 이 둘을 dept_no 칼럼으로 내부 조인합니다.
INNER JOIN employees c
ON a.emp_no = c.emp_no
관리자 이름을 가져오기 위해 emp_no 칼럼으로 dept_manager와 employees 테이블을 내부 조인합니다.
WHERE b.dept_name IN ('Marketing', 'Finance')
Marketing과 Finance 부서의 관리자 정보를 조회하므로 departments 테이블의 dept_name 칼럼 값이 ‘Marketing’과 ‘Finance’인 건만 조회하도록 IN 연산자로 조건을 줍니다.
AND SYSDATE() BETWEEN a.from_date AND a.to_date;
dept_manager 테이블에는 from_date와 to_date라는 날짜 칼럼이 있습니다. 두 칼럼에는 언제부터 언제까지 특정 부서의 관리자로 있었는지에 대한 날짜 값이 들어 있죠. 따라서 현재 시점을 기준으로 해당 부서의 관리자를 조회하려면 현재 날짜를 반환하는 SYSDATE() 함수의 반환값이 from_date와 to_date 사이에 있는 건을 조회하면 됩니다. 두 날짜 사이에 포함되는지는 BETWEEN... AND 연산자로 확인합니다.