我正在使用sql查询来执行以下操作:
对于每个项目,请检索项目编号,项目名称以及部门5中从事该项目的员工人数。
到目前为止,我的查询看起来像这样:
SELECT p.PNO
, p.PNAME
, COUNT( DISTINCT w.ESSN) '# employees from Dept. 5'
FROM project p
JOIN department d
ON d.DNO = p.DNO
JOIN employee e
ON e.DNO = d.DNO
JOIN works_on w
ON w.ESSN = e.SSN
WHERE e.DNO LIKE '5'
AND p.PNO LIKE 10
在我为10号项目进行测试的地方,该项目应将部门5的雇员人数返回1,但是它返回NULL。我认为我需要以某种方式加入项目表和员工表,但是我不确定
附件是我的架构
您的加入是错误的。
您应该只加入项目,works_on和employee表。
SELECT p.PNO, p.PNAME, COUNT( DISTINCT w.ESSN) '# employees from Dept. 5'
FROM project p
INNER JOIN works_on w
ON p.pno = w.pno
INNER JOIN employee e
ON w.essn = e.essn
WHERE e.DNO LIKE '5' AND p.PNO LIKE 10
最后,您缺少该组:
GROUP BY p.PNO, p.PNAME
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句