0

MOODLEでは、次のスクリプトを使用していくつかの数値を取得しています-そしてそれらはうまくいきます:

SELECT
qc.name,
q.category,
SUM(IF(qs.grade = "1",1,0)) AS Correct,
SUM(IF(qs.grade = "0",1,0)) AS Wrong

FROM
mdl_question_states qs,
mdl_quiz_attempts qa,
mdl_quiz qz,
mdl_course c,
mdl_question q,
mdl_question_categories qc

WHERE
qa.id = qs.attempt
AND qs.event = 6
AND qa.quiz = qz.id
AND ((qz.name = 'Pre-Test') OR (qz.name = 'Post-Test'))
AND qz.course = c.id
AND q.id = qs.question
AND q.category = qc.id
AND q.category > 601

GROUP BY q.category

ORDER BY qc.name

私の質問はこれです:「正しい-AND-事前テスト」の後に「正しい-AND-事後テスト」が続く列(「SUM(IF ...」列の後)が必要です。

これを実現するために使用する構文は何ですか?

4

1 に答える 1

0

試す

SUM(IF(sq.grade = '1' AND qz.name='pre-test', 1, 0)) AS cor_and_pre

他の値についても同様です。

于 2013-01-18T16:16:27.300 に答える