0

我有 3 张桌子:

Employee: contain employee_id, name

Project: contain project_id, name
Project_assignment: contain id_assign, employee_id, project_id, startdate, enddate

我想显示我加入的列表项目信息:name_project(我加入),加入项目的人数和开始日期(我加入项目的日期)

有没有办法做到这一点?谢谢

4

1 回答 1

1

如果我正确理解您的问题,您需要使用GROUP BY

SELECT P.Project_Id, P.Name as ProjectName, PA.StartDate, COUNT(E.Employee_Id) as EmployeeCount
FROM Project P
   JOIN Project_Assignment PA ON P.Project_Id = PA.Project_Id
   JOIN Employee E ON PA.Employee_Id = E.Employee_Id
GROUP BY P.Project_Id, P.Name, PA.StartDate

请注意,假设员工在不同的日子加入该项目,这不会为您提供唯一的记录。如果是这种情况,您希望显示哪个开始日期?

- 编辑

这应该会返回您所在的项目(假设您的 id 是 123),以及项目 id、项目名称、开始日期和员工人数:

SELECT P.Project_Id, P.Name as ProjectName, PA.StartDate, E.EmpCount
FROM Project P
   JOIN Project_Assignment PA ON P.Project_Id = PA.Project_Id AND PA.Employee_Id = 123
   JOIN (
       SELECT Project_Id, Count(Employee_Id) EmpCount
       FROM Project_Assigment
       GROUP BY  project_id
   )
   E ON P.Project_Id = E.Project_Id

祝你好运。

于 2013-01-29T03:13:15.807 回答