gpt4 book ai didi

mysql - 根据用户获取每行的总和

转载 作者:行者123 更新时间:2023-11-29 12:38:03 26 4
gpt4 key购买 nike

只是想寻求帮助如何根据用户获取每行的总和?我试图通过乘以员工的工作时间来获得项目成本,然后将其计算为员工的费率。我有 3 个表:员工、工时、项目

这与我的表格类似

对于员工表:

Name    |   Rate    |
Emp_A | 10.50 |
Emp_B | 15.00 |
Emp_C | 25.10 |

对于时间表:

Employee    |   Hours   | Project
Emp_A | 18.50 | PRJ.APP
Emp_A | 10.00 | PRJ.APP
Emp_B | 20.00 | PRJ.APP
Emp_B | 5.30 | PRJ.APP
Emp_C | 13.00 | PRJ.CAT
Emp_C | 8.00 | PRJ.CAT

对于项目表:

Prj_Name    |   Prj_Code    |
Apple | PRJ.APP |
Catalina | PRJ.CAT |

这是我目前拥有的代码,它只是根据项目和用户获取总和

SELECT users.employee, SUM(timesheet.hours * 10.50)

FROM Projects prj, Hours timesheet, Employee users

WHERE prj.Prj_Name = 'PRJ.APP'

我希望得到的输出是,例如,当选择项目名称 PRJ.APP 时,它会获取参与该项目的员工,并按行计算它,因为每个员工的费率不同。

我尝试这样做

SELECT if(users.employee = 'Emp_A', SUM(timesheet.hours * 10.50), SUM(timesheet.hours))

FROM Projects prj, Hours timesheet, Employee users

WHERE prj.Prj_Name = 'PRJ.APP'

但这只会得到 Emp_A 的总和,并且基于项目 PRJ.APP 上的示例表 Emp_A 和 Emp_B。

项目 PRJ.APP 的期望输出(员工 A 和 B 参与 PRJ.APP):

|   Emp     |   Hours   |   Hours_Sum   |
| A | 28.50 | 285 |
| B | 25.30 | 379.5 |

小时列是小时表中“小时”的总和Hours_Sum 是工时列的总和乘以员工各自的费率。

希望大家能帮帮我。预先感谢您!

最佳答案

如图所示修改您的查询,您必须在查询中同时使用 joingroup by 子句。此查询将返回结果作为基于每个员工每个项目花费的小时数的总费率

select e.name, p.prj_name,SUM(h.hours * e.rate)
from employee e inner join hours h on (e.name = h.employee)
inner join projects p on (p.prj_code = h.project)
group by e.name, p.prj_name

关于mysql - 根据用户获取每行的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com