如何在 sql/linq 中合并来自具有相同外键的两行的数据
How do I combine data from two rows with the same foreign key in sql/linq
我有一个 table 工资单,它可以包含同一员工的多张工资单。每张工资单都有 hours_worked 列。我希望能够在我给定的任何时间段内获得每个员工的工作时间。
例如,如果 2021 年 1 月至 2021 年 2 月有两张属于员工 1 的工资单,并且他在这两个月内总共工作了 60 小时,我想在一行中工作 60 小时。其他所有员工也是如此。
我怎样才能做到这一点?
您需要的是 JOIN、GROUP BY 和 SUM()。
类似于:
SELECT E.EmployeeID, E.Name, Hours = SUM(P.Hours)
FROM Employee E
JOIN PaySlip P ON P.EmployeeID = E.EmployeeID
WHERE P.Date BETWEEN @StartDate AND @EndDate
GROUP BY E.EmployeeID, E.Name
我有一个 table 工资单,它可以包含同一员工的多张工资单。每张工资单都有 hours_worked 列。我希望能够在我给定的任何时间段内获得每个员工的工作时间。
例如,如果 2021 年 1 月至 2021 年 2 月有两张属于员工 1 的工资单,并且他在这两个月内总共工作了 60 小时,我想在一行中工作 60 小时。其他所有员工也是如此。
我怎样才能做到这一点?
您需要的是 JOIN、GROUP BY 和 SUM()。
类似于:
SELECT E.EmployeeID, E.Name, Hours = SUM(P.Hours)
FROM Employee E
JOIN PaySlip P ON P.EmployeeID = E.EmployeeID
WHERE P.Date BETWEEN @StartDate AND @EndDate
GROUP BY E.EmployeeID, E.Name