到目前为止,我已经有了这个代码,但是对于eac项目中的员工数量似乎无法实现。
SELECT p.projno, p.pname, COUNT(e.ename) as "NUM_ASSGD_EMPS", SUM(a.num_hours) as "num_hours"
FROM emp e, assignment a, proj p
WHERE e.empno = a.empno AND p.projno = a.projno
GROUP BY e.ename, p.Projno, p.pname;
答案 0 :(得分:0)
您的分组与汇总不匹配。 group by应包含没有sum / count等聚合的字段。在你的情况下,这只是projno和pname。 ename不应该在/被组合在一起/毕竟,如果按此分组,你总是得到1的数量!
所以试试
SELECT p.projno, p.pname, COUNT(e.ename) as "NUM_ASSGD_EMPS", SUM(a.num_hours) as "num_hours"
FROM emp e, assignment a, proj p
WHERE e.empno = a.empno AND p.projno = a.projno
GROUP p.Projno, p.pname;