gpt4 book ai didi

mysql - SQL 查询中的内/左/右连接中的 SUM

转载 作者:行者123 更新时间:2023-11-29 21:30:44 26 4
gpt4 key购买 nike

我的 mySQl 数据库中有三个表,它们是:

员工:

ID int
Name
Surname

休息日请求:

ID int (PK)
EmployeeID FK references Employee
HowManyDays double

排名:

ID int (PK)
EmployeeID FK references Employee
daysEmployeeCanGet double

每个员工都有职级,每年可以享受多少天休假是由他的职级决定的。例如,第一年他总共可以获得 14 天的时间。他们的日子由 DaysOffRequest 保留。

我想在一个查询中获取UserID、RankID、SUM(HowManyDays)、SUM(daysEmplooyeeCanGet)

我用过

SELECT 
e.id, r.id,
SUM(r.daysEmployeeCanGet),
SUM(HowManyDays)
FROM
Employee e
INNER JOIN
Rank r ON r.`userID` = e.`ID`
INNER JOIN
DayOffRequest

但是没有成功。我的意思是它确实有效,但没有达到想要的效果。

我实际上想做一个查询,就像每当员工休息一天时,它会自动减少他可以获得的总天数中获得的天数。(他可以获得的总天数是他每个级别的EmployeeCanGet天数之和有。)

我怎样才能实现这个目标?

我希望我说得足够清楚。

谢谢。

最佳答案

尝试下面的查询,但每个员工的排名表中必须有一行,因为我使用了最大值。

SELECT u.id
MAX(r.daysEmployeeCanGet) 'Allowed',
SUM(HowManyDays) 'Availed',
MAX(r.daysEmployeeCanGet) - SUM(HowManyDays) 'Remaining'
FROM User u
INNER JOIN Rank r ON r.EmployeeID=u.ID
INNER JOIN DayOffRequest dor ON u.ID = dor.EmployeeID
GROUP BY u.id

关于mysql - SQL 查询中的内/左/右连接中的 SUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35292126/

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