私は次のデータベース設計を持っています:
Answers Table: AnswerID, Answer
QuestionAnswers Table: ID, QuestionID, AnswerID
CompleteSurvey Table: ID, QuestionAnswersID, RespondantID
Questions Table: QuestionID, Question
Employee Table: EmployeeID, Name
質問の1つに、次の回答があります。
ER Estimate
Company Esitmate
Both ER & Company Estimates
None
この質問の答えは2つの質問に影響します。ここで必要なのは、(なし)を選択した従業員を除外してから、他の2つの質問の参加者数から除外することです。So how to do that?
A、B、Cの3つの質問があると仮定します。では、質問Bに参加した従業員の数から、質問Aの回答として(なし)を選択した人を除外するにはどうすればよいでしょうか。 C。
各質問の可能な回答ごとに参加者の数を示すクエリを作成しました。これはうまく機能しますが、上記で必要なものを取得するためにどのように改善できるかを示します。
SELECT COUNT(DISTINCT dbo.CompleteSurvey.RespondantID) AS [Total Number of Participants], dbo.Answers.Answer, dbo.Questions.Question
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 LEFT OUTER JOIN
dbo.CompleteSurvey ON dbo.QuestionsAnswers.ID = dbo.CompleteSurvey.QuestionsAnswersID
GROUP BY dbo.Answers.Answer, dbo.Questions.Question
更新2:
148 Both ER & Company Estimates
102 Company Estimate
22 ER Estimate
130 None
質問Aの可能な各回答の参加者数。ここで質問Bについて、次の回答と参加者数があると仮定します。
22 Answer A
180 Answer B
180 Answer C
20 Answer D
次の質問から質問Aの(なし)回答のある人を除外するようにクエリを適用したところ、質問Bのすべての回答に対して負の数が得られました。どのようになりますか?