PL / SQL问题查询如何使用存在而不存在

时间:2013-03-19 17:33:56

标签: sql oracle plsql oracle10g plsqldeveloper

我有一张包含位置详情的表格: -

Location id    Manager Name             SubFunction      
  1             HR      XYZ             direct sales    
  2             IT      ABC             Gaming         
   3            HR      DEC              Agent     

Location id   Lookupcode
1          123
2          126
3          231
4          222

Subfuction_table详情: -

Lookup code  Subfunction
123          Agent
126          Gaming
222          Customer services

基本上,我有两个表,其中的位置具有功能,定义了子功能 另一个具有子功能表,具有在位置表中使用的子功能名称。

现在我必须编写一个PL / SQL查询,以便显示位置表中不存在的所有函数,只将管理器显示为“HR”。我尝试过以下查询: -

select Subfuntion
from subfunction_table
where exists                     //Part a
(select null
from subfunction_table

)
and not exists
(select null                 // Partb
from 
location
where manger='HR')

例如: - 在子功能表的上表中,“客户服务”位于子功能表中但不在该位置,因此查询应显示子功能“客户服务”

但我没有得到如何使用从a部分到部分b

的子功能名称的逻辑

1 个答案:

答案 0 :(得分:0)

SELECT *
  FROM subfunction sf
 WHERE NOT EXISTS (SELECT 1
                     FROM function f JOIN location l USING (locationid)
                    WHERE l.manager = 'HR');

我这就是你要找的东西?这是我从你的问题中理解的。