From 162db417234cfbf32289a13d9b7eedbf6448cbc0 Mon Sep 17 00:00:00 2001 From: jamiesensei Date: Sun, 20 Jul 2008 14:34:53 +0000 Subject: [PATCH] MDL-15198 "non-standard sql in reportlib.php" using CASE statement to wrap logic in fields list --- mod/quiz/report/responses/report.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mod/quiz/report/responses/report.php b/mod/quiz/report/responses/report.php index 4ca2b9b1c6..aed1073d9e 100644 --- a/mod/quiz/report/responses/report.php +++ b/mod/quiz/report/responses/report.php @@ -177,9 +177,16 @@ class quiz_responses_report extends quiz_default_report { // Construct the SQL - $fields = $DB->sql_concat('u.id', '\'#\'', 'COALESCE(qa.attempt, \'0\')').' AS uniqueid, '. - ($qmsubselect?"($qmsubselect) AS gradedattempt, ":''). - 'qa.uniqueid AS attemptuniqueid, qa.id AS attempt, u.id AS userid, u.idnumber, u.firstname,'. + $fields = $DB->sql_concat('u.id', '\'#\'', 'COALESCE(qa.attempt, \'0\')').' AS uniqueid, '; + if ($qmsubselect) { + $fields .= + "(CASE " . + " WHEN $qmsubselect THEN 1" . + " ELSE 0 " . + "END) AS gradedattempt, "; + } + + $fields .='qa.uniqueid AS attemptuniqueid, qa.id AS attempt, u.id AS userid, u.idnumber, u.firstname,'. ' u.lastname, u.institution, u.department, u.email, u.picture, '. 'qa.sumgrades, qa.timefinish, qa.timestart, qa.timefinish - qa.timestart AS duration '; -- 2.39.5