あなたの質問を正しく理解している場合は、次を使用する必要があります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、プロジェクト名、開始日、および従業員数とともに、現在のプロジェクト (ID が 123 であると仮定) が返されます。
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
幸運を。