所以我有一个表Project
---------------------------------
project_id | name|
---------------------------------
1 | project 1 |
2 | project 2 |
---------------------------------
表02报告
----------------------------------------------------
report_id | report_emp | report_hours |report_project_id|
---------------------------------------------------
1 | 1 | 5 | 1 |
2 | 2 | 7 | 1 |
3 | 1 | 9 | 2 |
4 | 2 | 6 | 1 |
5 | 3 | 8 | 2 |
--------------------------------------------------
和表03 emp
----------------------------------------------
emp_id | emp_hourly_cost | name |
-----------------------------------------------
1 | 8.5 | A |
2 | 10 | B |
3 | 12 | C |
4 | 9 | D |
5 | 7.5 | D |
-----------------------------------------------
最后的结果是我想得到这张table
---------------------------------------------
project | hours | total cost |
---------------------------------------------
1 | 18 | 172.5 |
2 | 17 | 172.5 |
---------------------------------------------
到目前为止,我只得到了总小时,但不是总成本在这个声明项目
SELECT * from projects left join(select sum(report_hours ) as hours , daily_reports_project_id
from project_id group by report_id)x on x.report_project_id= projects.project_id;
总成本将是所有的总和〉[表2中emp项目的总时数 * 表3中emp_hourly_cost]
谢谢你的帮助。
2条答案
按热度按时间j0pj023g1#
尝试将此SELECT总和(column_name1 + column_name2)作为'Total'
FROM表格1
左联接表2
ON表1.列名称1 =表2.列名称2;
xzv2uavs2#
联接表并聚合:
如果存在没有报告的项目,并且您希望获得
0
而不是NULL
作为结果,则也可以使用COALESCE()
:请参阅demo。