[英]SQL select sum from other table as a column via junction table
I have 2 regular Tables "Tasks" and "Employees" and one junction table EmployeeTasks simplified they look like this 我有两个常规表“ Tasks”和“ Employees”,还有一个联结表EmployeeTasks简化了,它们看起来像这样
Tasks 任务
Employee 雇员
EmployeeTasks EmployeeTasks
I am trying to find a tsql query that based on a common project ID would deliver a summary of the total time spent and number of tasks done by each employee. 我试图找到一个基于通用项目ID的tsql查询,该查询将提供总花费时间和每个员工完成的任务数量的摘要。 Similar to this: 与此类似:
"Employee" | "Number of Tasks" | "Time Spent"
----------------------------------------
John | 5 | 123
Sam | 4 | 72
SELECT E.EmployeeName, COUNT(T.TaskID) AS [Number of Tasks], SUM(T.Duration) as [Time Spent]
FROM Employee E, EmployeeTasks ET, Tasks T
WHERE ET.EmployeeID = E.EmployeeID AND ET.TaskID = T.TaskID
GROUP BY E.EmployeeName
try this: 尝试这个:
Select EmployeeName,
Count(et.TaskId) NumTasks,
Sum(T.Duration) TimeSpent
From Employees E
Left Join (EmployeeTasks eT Join Tasks T
On T.TaskId = eT.TaskId)
On eT.EmployeeId = E.EmployeeId
Where ProjectId = @ProjectId
Group By EmployeeName
and this will do it for all employees-Project combinations 这将适用于所有员工-项目组合
Select EmployeeName, ProjectId,
Count(et.TaskId) NumTasks,
Sum(T.Duration) TimeSpent
From Employees E
Left Join (EmployeeTasks eT Join Tasks T
On T.TaskId = eT.TaskId)
On eT.EmployeeId = E.EmployeeId
Group By EmployeeName, ProjectId
Note this is different if you need to show time for an employee who has no tasks. 请注意,如果您需要为没有任务的员工显示时间,则这是不同的。
SELECT Count(TaskID) as NumOfTasks, Sum(Duration) as TimeSpent
FROM Employee
INNER JOIN EmployeeTasks on Employee.EmployeeID = Tasks.EmployeeID
INNER JOIN Tasks on EmployeeTasks.TaskID = Tasks.TaskID
WHERE ProjectID = @ProjectID
GROUP BY EmployeeID
If you want the employee name you join this as a sub-select 如果您想要员工姓名,则可以将其作为子选择加入
SELECT EmployeeName, NumOfTasks, TimeSpent
FROM Employees
INNER JOIN (insert select here) TaskSummary on Employees.EmployeeID = TaskSummary.EmployeeID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.