私は次のデータベース設計を持っています:
Employees Table: EmployeeID, Name, OrgCode
Departments Table: OrgCode, DepartName
CompleteSurvey Table: ID, ParticipantID
そして、すべての部門の従業員の総数と、すべての部門の調査を完了した参加者の総数を示すテーブルを表示する1つのクエリを開発する必要があります。
次のクエリで、すべての部門の従業員の総数を見つけることができます。
SELECT COUNT(DISTINCT dbo.Employees.EmployeeID) AS [Total Number of Employees]
FROM dbo.Departments INNER JOIN
dbo.Employees ON dbo.Departments.OrgCode = dbo.Employees.OrgCode CROSS JOIN
dbo.CompleteSurvey
次に、次のクエリによって、すべての部門の参加者の総数を見つけることができます。
SELECT COUNT(DISTINCT dbo.CompleteSurvey.ID) AS [Total Number of Participants]
FROM dbo.Departments INNER JOIN
dbo.Employees ON dbo.Departments.OrgCode = dbo.Employees.OrgCode INNER JOIN
dbo.CompleteSurvey ON dbo.Employees.EmployeeID = dbo.CompleteSurvey.RespondantID
ただし、クエリは1つだけにする必要があります。
たとえば、部門Aに100人の従業員がいて、参加者の数が100人中50人で、部門Bに80人の従業員がいて、参加者の数が30人である場合
クエリには次のように表示されます。
すべての部門の従業員の総数=180
すべての部門の参加者の総数=80
それらすべての完了率=80/180= 44%
それで、それをどのように行うのですか?