【发布时间】:2014-04-27 10:21:19
【问题描述】:
拥有这 3 张桌子
第一个,员工
//Employee
E# ENAME D#
-----------------------
1 ALI 1
2 SITI 2
3 JOHN 2
4 MARY 3
5 CHIRS 3
第二,项目
//PROJECT
P# PNAME D#
-----------------------
1 Computing 1
2 Coding 3
3 Researching 3
第三,WORKSON
//WORKSON
E# P# Hours
--------------------
1 1 3
1 2 5
4 3 6
所以我的输出应该是这样的
E# ENAME D# TOTAL HOURS/W
--------------------------------------------
1 ALI 1 8
2 SITI 2 0
3 JOHN 2 0
4 MAY 3 6
5 CHIRS 3 0
显示 0,因为该员工没有要处理的项目。
我目前使用的声明
SELECT E.E#,E.NAME,E.D#,NVL(sum(Hours),0) AS "TOTAL HOURS/W"
FROM Employee E,WORKSON W WHERE E.E#=W.E# OR
GROUP BY E.E#,E.NAME,E.D#;
不知道它应该如何选择然后将显示所有员工,而不仅仅是特定的 E#。 输出显示好像员工没有任何项目工作,它应该显示为 0 值
【问题讨论】:
-
考虑提供适当的 DDL(和/或 sqlfiddle)以及所需的结果集
-
您使用的是 Oracle 还是 MySQL?请用适当的数据库标记问题。