我的mySQl数据库上有三个表:
员工:
ID int
Name
Surname
DayOffRequest :
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
但它没有用。我的意思是它确实有效但不是想要的。
我实际上想要查询,例如每当员工休息一天时,它会自动减少他从他可以得到的总天数中获得的天数。(他可以获得的总天数是天数雇员可以获得每天的收入有。)
我如何实现这一目标?
我希望我足够清楚。
谢谢。
答案 0 :(得分:0)
尝试以下查询,但每个员工的Rank表中必须有一行,因为我使用了max。
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