2

到目前为止,我有这段代码,但似乎无法计算 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;
4

1 回答 1

0

您的分组依据与聚合不匹配。group by 应该包含没有像 sum/count 这样的聚合的字段。在您的情况下,这只是 projno 和 pname 。ename 不应该在 group by/ 毕竟,如果你按那个分组,你总是得到 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;
于 2013-05-22T02:48:53.157 回答