2017-02-22 4 views
0

предоставить имя сотрудника, чье DeptNo 2 и не включают в себя, кто работает более 1 отделпредоставить имя сотрудника, чьи DeptNo 2 и не включают в себя, кто работает более 1 отдел

 
EmployeName DeptNo 
------------------- 
AA   1 
AA   2 
BB   2 
CC   1 
CC   2 
DD   2 

Ожидаемые результаты:
EmployeeName
BB
DD

+1

А что вы пробовали? Мы здесь не для того, чтобы твоя работа для тебя. – Siyual

+1

Проверьте GROUP BY, HAVING и COUNT. – jarlh

ответ

0

Вы можете использовать коррелированный подзапрос, чтобы утверждать, что работник оленья кожа у любой другой depar tment.

select * 
from your_table t 
where deptno = 2 
    and not exists (
     select 1 
     from your_table t2 
     where t.employename = t2.employename 
      and t2.deptno <> 2 
     ); 

Если вам просто нужно employeeName, использовать агрегацию:

select employename 
from your_table 
group by employename 
having count(distinct deptno) = 1 
    and max(deptno) = 2 
+0

Спасибо. Это помогло мне. – Ramesh

+0

@ Рамеш - Рад помочь. :) – GurV