複数のテーブルからデータを取得するのに助けが必要です。
これは私が持っているテーブルです:
_______________ ______________ ___________ _______________ _____________
|_tblUsers____| |_tblAnswers__| |_tblAlt__| |_tblQuestion_| |_survey_____|
| userID | | answerAltID | | altID | | questID | | surveyID |
| username | | userID | | altText | | questText | | surveyName |
|_____________| |_____________| |_questID_| |_surveyID____| |____________|
TblUsers にはシステム内のユーザーのリストがあり、tblAnswers にはユーザーから与えられたすべての回答があり、tlbAlt には質問の代替案があり、tblQuestion には質問があります。tblSurveys というテーブルがもう 1 つありますが、ID は tblQuestion に記載されているため、ここでは必要ありません。
これは私がこれまでに持っているものです:
SELECT
tblQuestion.questText,
tblAlt.altText,
Count(tblAnswers.answerID) as answers_count,
(SELECT COUNT(answerID) FROM tblAnswers, tblAlt
WHERE tblAnswers.answerAltID = tblAlt.altID
AND tblAlt.questID = " & CInt(questionID) & ") as total_count
FROM tblAlt, tblQuestion
LEFT JOIN tblAnswers ON (tblAlt.altId = tblAnswers.altID)
WHERE tblAlt.questID = " & CInt(questionID) & "
GROUP BY tblAlt.altText;
これは、次のような行を返します。
| | ブラブラブラとは?| | 答えは... | 2 (回答済み) | 10 (合計回答数) |
残念ながら、これは 1 つの質問のすべての行しか返しません。(調査 ID に基づいて) 同じ調査の一部であるすべての行を取得する方法はありますか?
出力を次のようにしたい場合:
| | ブラブラブラとは?| | 答えは... | 2 (回答済み) | 10 (合計回答数) | 調査名 |
すべての選択肢を返したい (回答数、合計回答数、関連する質問とアンケート)。
アップデート:
これは私の入力です:
SELECT tblalternativ.altTekst, tblalternativ.altID, Count(tblsvar.svarAltID) as antSvar,
(SELECT COUNT(*) FROM tblsvar, tblalternativ
WHERE tblsvar.svarAltID = tblalternativ.altID
AND tblalternativ.altSpmID = " & CInt(lblQuestion.Tag) & ") as antTotal,
(SELECT Count(*) FROM tblalternativ WHERE altSpmID = " & CInt(lblQuestion.Tag) & ") as spmTotal
FROM(tblalternativ) LEFT JOIN tblsvar ON (tblalternativ.altId = tblsvar.svarAltID)
WHERE(tblalternativ.altSpmID = " & CInt(lblQuestion.Tag) & ")
GROUP BY tblalternativ.altTekst ORDER BY tblalternativ.altID ASC
私の出力:
altTekst altID antSvar antTotal spmTotal
Black 83 1 3 5
Green 84 1 3 5
Yellow 85 1 3 5
White 86 0 3 5
Pink 87 0 3 5
ただし、これは 1 つの質問の統計のみを表示します。1 つの調査ですべての質問を表示したい。altTekst
そのため、その調査、質問名、および調査の ID のすべてを取得する必要があります。
私が欲しい:
spmTekst altTekst altID antSvar antTotal spmTotal evalID
What is... Black 83 1 3 5 1
What is... Green 84 1 3 5 1
What is... Yellow 85 1 3 5 1
What is... White 86 0 3 5 1
What is... Pink 87 0 3 5 1
Who is.... The king 88 2 3 3 1
Who is.... The pope 89 0 3 3 1
Who is.... The president 90 1 3 3 1
Which.... Shoe 91 2 3 2 1
Which.... Hat 92 1 3 2 1
つまり、同じアンケートのすべての質問からの統計が必要です (evalID に基づく)。