次のデータベース設計があります。
Employee Table: EmployeeID, Name, OrgCode
Department Table: OrgCode, DepartName
CompleteSurvey Table: ID, RespondantID, QuestionsAnswersID
Questions Table: QuestionID, Question
Answers Table: AnswerID, Answer
QuestionsAnswers Table: ID, QuestionID, AnswerID
可能な回答の 1 つに参加者がいない場合でも、各質問に可能なすべての回答と各質問の合計参加者数を表示するクエリを作成しました。この結果は、部門ごとに表示されます。
私が今しなければならないことは、このクエリを変更して、既に取得した参加者の総数に加えて、各部門の従業員の総数を表示し、参加者の総数/従業員の総数である参加率を表示することです。
では、どうやってそれを行うのですか?
クエリ:
SELECT
TOP (100) PERCENT
COUNT(DISTINCT CompleteSurvey.RespondantID) AS [Total Number of Participants],
dbo.Answers.Answer, dbo.Questions.Question,
dbo.Departments.DepartmentName
FROM
dbo.Questions
INNER JOIN
dbo.QuestionsAnswers ON dbo.Questions.QuestionID = dbo.QuestionsAnswers.QuestionID
INNER JOIN
dbo.Answers ON dbo.QuestionsAnswers.AnswerID = dbo.Answers.AnswerID
CROSS JOIN
dbo.Departments
LEFT OUTER JOIN
(SELECT
dbo.Employees.OrgCode, CompleteSurvey_1.QuestionsAnswersID,
CompleteSurvey_1.RespondantID
FROM
dbo.CompleteSurvey AS CompleteSurvey_1
INNER JOIN
dbo.Employees ON dbo.Employees.EmployeeID = CompleteSurvey_1.RespondantID) AS CompleteSurvey ON dbo.QuestionsAnswers.ID = CompleteSurvey.QuestionsAnswersID AND dbo.Departments.OrgCode = CompleteSurvey.OrgCode
GROUP BY
dbo.Answers.Answer, dbo.Questions.Question, dbo.Departments.DepartmentName
ORDER BY
dbo.Questions.Question, dbo.Answers.Answer, dbo.Departments.DepartmentName