--부하직원이 없는 사원의 이름을 표시하시오. (사원 번호가 매니저로 저장되어 있진 않은 사람을 조회해야 함)
SELECT DISTINCT(ENAME) 사원이름 -- 반복빼고
FROM EMP
WHERE ENAME NOT IN
(SELECT E.ENAME 사원이름 FROM EMP E, EMP E1 WHERE E.EMPNO = E1.MGR);
--부하직원이 있는 사원의 이름을 표시하시오. (사원 번호가 매니저로 저장되어 있는 사람을 조회해야 함)
SELECT DISTINCT(E.ENAME) 사원이름
FROM EMP E, EMP E1
WHERE E.EMPNO = E1.MGR;
--김동혁과 동일한 부서에 속한 사원의 부서코드, 이름, 입사일을 표시하는 질의를 작성하시오.
--( 단 김동혁은 제외 )
SELECT E.DEPTNO 부서코드
, E.ENAME 이름
, E.HIREDATE 입사일
FROM EMP E, EMP E1
WHERE E.DEPTNO = E1.DEPTNO AND E.ENAME='김동혁'
AND NOT E1.ENAME = '김동혁';
--급여가 평균 급여보다 많은 사원들의 사원 번호와 이름을 표시하되 결과를 급여에 대해서 오름차순으로 정렬하시오.
SELECT ENAME 사원이름
, EMPNO 사원번호
, SAL 급여
FROM EMP
WHERE (SELECT AVG(SAL) FROM EMP) < SAL
ORDER BY SAL DESC;
--54.이름에 “국”이 포함된 사원과 같은 부서에서 일하는 사원의 사원 번호와 이름을 표시하시오.
SELECT DISTINCT(E.EMPNO) 사원번호
, E.ENAME 사원이름
FROM EMP E, EMP E1
WHERE E.DEPTNO = E1.DEPTNO AND E.ENAME LIKE '%박%';
--부서위치가 서울인 사원의 이름과 부서번호 및 담당업무를 표시하시오.
SELECT E.ENAME 사원이름
, E.DEPTNO 부서번호
, E.JOB 담당업무
, D.LOC 부서위치
FROM EMP E, DEPT D
WHERE D.LOC = '서울'
AND E.DEPTNO = D.DEPTNO;
--김지완에게 보고하는 사원의 이름과 급여를 표시하시오.
SELECT E.ENAME 사원이름
, E.SAL 급여
FROM EMP E, EMP E1
WHERE E1.ENAME = '김지완' AND E.MGR = E1.EMPNO;
--조사부 부서의 사원에 대한 부서번호, 사원이름 및 담당 업무를 표시하시오.
SELECT d.dname 부서명
, E.DEPTNO 부서번호
, E.ENAME 사원이름
, E.JOB 담당업무
FROM EMP E, DEPT D
WHERE D.DNAME = '조사부'
AND d.deptno = e.deptno;
--평균 월급보다 많은 급여를 받고 이름에 “우”가 포함된 사원과 같은 부서에서 근무하는 사원의 사원 번호, 이름, 급여를 표시하시오.
SELECT DISTINCT(E.EMPNO) 사원번호
, E.ENAME 사원이름
, E.SAL 급여
FROM EMP E, EMP E1
WHERE E.SAL > (SELECT AVG(SAL) FROM EMP) AND E.DEPTNO = E1.DEPTNO
AND E.ENAME LIKE '%우%';
--평균급여가 가장 적은 업무를 찾으시오.
SELECT ASD 업무
FROM (SELECT JOB ASD FROM EMP GROUP BY JOB ORDER BY AVG(SAL) ASC)
WHERE ROWNUM = 1;
SELECT JOB
FROM EMP
WHERE ROWNUM = 1
ORDER BY (SELECT AVG(SAL) FROM EMP);
--담당업무가 관리자인 사원이 소속된 부서와 동일한 부서의 사원을 표시하시오.
SELECT E1.ENAME 사원이름
FROM EMP E, EMP E1
WHERE E.JOB = '관리자' AND E.DEPTNO = E1.DEPTNO;