]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-15198 "non-standard sql in reportlib.php" using CASE statement to wrap logic...
authorjamiesensei <jamiesensei>
Sun, 20 Jul 2008 14:34:53 +0000 (14:34 +0000)
committerjamiesensei <jamiesensei>
Sun, 20 Jul 2008 14:34:53 +0000 (14:34 +0000)
mod/quiz/report/responses/report.php

index 4ca2b9b1c6881202b10f8947b378a14aeff8d2b1..aed1073d9ec92507ded082683a39a2a059009896 100644 (file)
@@ -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 ';