select
d.DepartmentId,
d.Name,
d.GroupName,
eph.Rate * 40 * 52 * count(edh.EmployeeId) as AnnualPay
from
HumanResources.Department d,
HumanResources.EmployeePayHistory eph,
HumanResources.Employee e,
HumanResources.EmployeeDepartmentHistory edh
where
e.CurrentFlag = 'True' and
edh.DepartmentID = d.DepartmentID and
edh.EmployeeID = eph.EmployeeID and
e.EmployeeID = eph.EmployeeID
group by
d.departmentID;
目标是编写一个报告来显示部门 ID、名称、组名、在该部门工作的所有员工的年薪总额以及在该部门工作的员 worker 数。
要计算年薪
,请将每位员工的工资乘以一年中 52 周的 40 小时。
仅包含所有员工年薪总额超过50万美元
的部门。
所有员工都应该是当前员工(使用 currentflag)。
按员工年薪总额降序对报表进行排序。
表格已包含在内,我不知道如何按每个部门进行分组... Database
最佳答案
如果我明白你在寻找什么,这应该有效:
SELECT
d.DepartmentId,
d.Name,
d.GroupName,
SUM(eph.Rate * 40 * 52) as AnnualPay,
Count(edh.EmployeeId) as EmployeeCount
from HumanResources.Department d
JOIN HumanResources.EmployeeDepartmentHistory edh
ON edh.DepartmentID = d.DepartmentID
JOIN HumanResources.EmployeePayHistory eph
ON edh.EmployeeID = eph.EmployeeID
JOIN HumanResources.Employee e
ON e.EmployeeID = eph.EmployeeID
WHERE e.CurrentFlag = 'True'
GROUP BY d.departmentID,d.Name,d.GroupName
HAVING AnnualPay > 500000
ORDER BY AnnualPay DESC;
关于mysql - SQL 帮助,按另一个表分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43422526/