需要在另一个表SQL中获取具有不同值的元组

时间:2014-11-05 02:38:46

标签: sql oracle

我有三张桌子:

部分(SectID,描述,状态)
员工(EmpID,SectID,Fname,Gname)
JobDone(JobID,EmpID *)

每个工作都可以由几个员工完成,每个部门可以包括几个员工。

我需要接收由4名以上员工完成的所有工作,所有这些员工来自不同的部门

我已经获得了以下应该显示的SQL查询(尚未经过测试),需要4名以上员工的工作的EmpID,JobID和SectID,但我无法弄清楚如何显示具有所有不同部分的作业

 select  EmpID, JobID, SectID
 from JobDone natural join Employee
 where JobID in
     (select JobDone.JobID
      from JobDone
      group by JobDone.JobID
      having count(*) > 4
      )

非常感谢任何帮助

由于

1 个答案:

答案 0 :(得分:1)

这是一个查询,以获取至少4个不同部分中至少有4名员工的所有工作人员。由于每个员工都在特定部门工作,因此4个不同的部门至少有4名员工。

select JobID
from JobDone j
join Employee e
on j.EmpID = e.EmpID
group by JobID
having count(distinct e.SectID)>=4

我们在查询上方而不是代码中的子查询。