Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
21
Добавлен:
05.06.2015
Размер:
385 Кб
Скачать

6 Rows selected.

Q3_9

Сотрудники, имеющие хотя бы одного подчиненного

SQL> select EMPNO,ename,job,DEPTNO

from EMP x

where exists (select 1 from EMP

where EMP.mgr = x.EMPNO)

order by DEPTNO;

EMPNO ENAME JOB DEPTNO

--------- ---------- --------- ----------

7839 KING PRESIDENT 10

7782 CLARK MANAGER 10

7566 JONES MANAGER 20

7788 SCOTT ANALYST 20

7902 FORD ANALYST 20

7698 BLAKE MANAGER 30

6 Rows selected.

Q3_10 Сотрудники, не имеющие подчиненных.

NOT IN ничего не выбирает, так как есть NULL значение

SQL> select EMPno,ename,job,DEPTno

from EMP

where EMPno not in (select mgr from EMP);

no rows selected

Правильно так:

SQL> select EMPno,ename,job,DEPTno

from EMP

where EMPno not in (select nvl(mgr,0) from EMP);

EMPNO ENAME JOB DEPTNO

---------- ---------- --------- ----------

7654 MARTIN SALESMAN 30

7499 ALLEN SALESMAN 30

7844 TURNER SALESMAN 30

7900 JAMES CLERK 30

7521 WARD SALESMAN 30

7369 SMITH CLERK 20

7876 ADAMS CLERK 20

7934 MILLER CLERK 10

8 Rows selected.

Q3_11

Список сотрудников , не имеющих подчиненных

SQL> select EMPNO,ename,job,DEPTNO

from EMP x

where not exists (select mgr from EMP

where mgr = x.EMPNO)

order by DEPTNO;

EMPNO ENAME JOB DEPTNO

--------- ---------- --------- ----------

7934 MILLER CLERK 10

7369 SMITH CLERK 20

7876 ADAMS CLERK 20

7654 MARTIN SALESMAN 30

7499 ALLEN SALESMAN 30

7844 TURNER SALESMAN 30

7900 JAMES CLERK 30

7521 WARD SALESMAN 30