datalib: get_logs_user*() - fix invalid SQL - MDL-12426

Oracle does not accept column labels in the GROUP BY section -
get_logs_usercourse() and get_logs_userday() were computing the
day/hours column and using it in the GROUP BY. The compatible fix
is to reproduce the same computation in the GROUP BY section.

Credit for the fix goes to Dennis Rochford <Dennis.Rochford@usq.edu.au>.
This commit is contained in:
martinlanghoff 2007-12-04 06:26:10 +00:00
parent e88370a6a3
commit 1d854cec5a

View File

@ -1941,7 +1941,7 @@ function get_logs_usercourse($userid, $courseid, $coursestart) {
FROM {$CFG->prefix}log
WHERE userid = '$userid'
AND time > '$coursestart' $courseselect
GROUP BY day ");
GROUP BY floor((time - $coursestart)/". DAYSECS .") ");
}
/**
@ -1968,7 +1968,7 @@ function get_logs_userday($userid, $courseid, $daystart) {
FROM {$CFG->prefix}log
WHERE userid = '$userid'
AND time > '$daystart' $courseselect
GROUP BY hour ");
GROUP BY floor((time - $daystart)/". HOURSECS .") ");
}
/**