2

私はこれまでのところこのコードを持っていますが、各従業員の数には見えません。

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 に答える