我有三张桌子:
部分(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
)
非常感谢任何帮助
由于
答案 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
我们在查询上方而不是代码中的子查询。