【发布时间】:2016-08-24 22:04:28
【问题描述】:
我正在处理一个 SQL 查询来执行以下操作:
对于两个以上员工从事的每个项目,检索项目编号、项目名称和从事该项目的员工人数。
这是我目前为项目编号 1 所做的:
SELECT project.PNO, project.PNAME, COUNT(DISTINCT works_on.ESSN)
AS '# of employess worked on'
FROM project INNER JOIN works_on
ON project.PNO = works_on.PNO
INNER JOIN employee
ON works_on.ESSN = employee.SSN
HAVING COUNT(DISTINCT works_on.ESSN) > 2
AND project.PNO LIKE 1
然后它返回:
PNO:1
PNAME:ProductX
在职员工人数:7
当它应该返回 NULL 时,因为项目编号 1 在works_on 表中只有两个不同的 ESSN,但它返回的是works_on 表中不同的 ESSN 的总数
附上我的架构:
【问题讨论】:
-
你忘了
GROUP BY