因此,我试图列出部门位置,与每个部门相关的项目名称以及在每个项目上工作的员工人数。
有一个DeptLocations表(属性:Dnum,DLoc)
项目表(属性:PName,Pnum,PLoc,DNum)
Employee表(属性:FNAME,M,LNAME,SSN,BDATE,ADDRESS,S,SALARY,SUPERSSN,DNO)
和一个Works_On表(属性:ESSN,PNO,小时)。
这是我的SQL查询:
select DeptLocations.DLocation, Project.PName, count(ESSN)
from Works_On, DeptLocations, Project, Department
where DeptLocations.DLocation = Project.PLocation and Project.PNumber = Works_On.PNo
由于某种原因,它只能产生1条记录,而显然应该有更多记录。任何帮助都会很棒。
答案 0 :(得分:0)
您需要添加group by
子句-因为您已经使用了聚合函数:
select
DeptLocations.DLocation,
Project.PName,
count(ESSN)
from
Works_On
inner join Project on Project.PNumber = Works_On.PNo
inner join DeptLocations on DeptLocations.DLocation = Project.PLocation
group by
DeptLocations.DLocation, Project.PName
注意:最好使用显式join
而不是逗号分隔的join
。