给一个拥有3个项目的公司,其中员工可以为一个或多个项目做出贡献。公司维护3个表,每个项目一个表,在其中记录该项目在给定日期的Employee_ID和Work_Hours。编写返回每位员工total_work_hours
的SQL
(输出-Emp_ID |项目| Total_work_hours),而无需使用UNION
或UNION ALL
局限性:我需要使用MySQL中的解决方案,因此FULL Join
是不可能的,而且我的MYSQL版本不支持窗口函数。
表结构如下:
Table Name: Project A, Columns:
EMP_ID, Work hours
Table Name: Project B, Columns:
EMP_ID, Work hours
Table Name: Project C, Columns:
EMP_ID, Work hours
更新:
抱歉,到处都是这个。这是我第一次在SO上提问。
我的预期输出还是2种类型:
每个员工在项目中的总工作时间(EMP_ID
| total_hours
)
每个员工的工作时间对项目的贡献(EMP_ID
| Project_name
| total_hours
)
使用UNION ALL
我可以回答1个简单的问题
SELECT emp_ID, SUM(work_hours)
FROM
(
SELECT * FROM projecta
UNION ALL
SELECT * FROM projectb
UNION ALL
SELECT * FROM projectc
) abc
GROUP BY emp_id
答案 0 :(得分:0)