我有以下的數據庫設計:即使沒有參與者在其中之一,如何顯示所有答案?
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
每個問題都有不同的多種選擇。大多數問題具有相同的選擇,如(同意,不同意)。我想編寫一個查詢,顯示所有選擇的問題以及每個選擇中的參與者數量,即使它是零。 我寫了查詢,它顯示了問題的所有答案,即使沒有人選擇其中一個答案,但查詢在除了沒有參與者的答案之外的問題列中顯示NULL,我不知道爲什麼。請幫忙嗎?
我的查詢:
SELECT COUNT(DISTINCT dbo.CompleteSurvey.RespondantID) AS [Total Number of Participants], dbo.Answers.Answer, dbo.Questions.Question
FROM dbo.CompleteSurvey INNER JOIN
dbo.QuestionsAnswers ON dbo.CompleteSurvey.QuestionsAnswersID = dbo.QuestionsAnswers.ID INNER JOIN
dbo.Questions ON dbo.QuestionsAnswers.QuestionID = dbo.Questions.QuestionID RIGHT OUTER JOIN
dbo.Answers ON dbo.QuestionsAnswers.AnswerID = dbo.Answers.AnswerID
GROUP BY dbo.Answers.Answer, dbo.Questions.Question
UPDATE:
查詢應顯示在所有的答案的問題,各部門的參與者的數量,所以該怎麼做?
我的更新查詢:
SELECT COUNT(DISTINCT dbo.CompleteSurvey.RespondantID) AS [Total Number of Participants], dbo.Answers.Answer, dbo.Questions.Question,
dbo.Departments.DepartmentName
FROM dbo.Employees INNER JOIN
dbo.CompleteSurvey ON dbo.Employees.EmployeeID = dbo.CompleteSurvey.RespondantID INNER JOIN
dbo.Departments ON dbo.Employees.OrgCode = dbo.Departments.OrgCode RIGHT OUTER JOIN
dbo.Questions INNER JOIN
dbo.QuestionsAnswers ON dbo.Questions.QuestionID = dbo.QuestionsAnswers.QuestionID INNER JOIN
dbo.Answers ON dbo.QuestionsAnswers.AnswerID = dbo.Answers.AnswerID ON dbo.CompleteSurvey.QuestionsAnswersID = dbo.QuestionsAnswers.ID
GROUP BY dbo.Answers.Answer, dbo.Questions.Question, dbo.Departments.DepartmentName
但它的問題不顯示的部門。它應該顯示每個問題中每個部門的參與者數量及其所有答案,即使沒有參與者提供答案之一。
感謝您的幫助。對此,我真的非常感激。但是,我得到了與此查詢相關的新要求,我無法在您的查詢中執行此操作。您能否看到我上面更新的問題? – user1395782
謝謝,但它不適用於我,我不知道爲什麼。你能測試你的查詢嗎? – user1395782
我添加了我正在處理的更新查詢,但仍未向我提供結果。 – user1395782