В настоящее время я работаю над созданием запросов Ad Ho c для извлечения из нашей базы данных Moodle. Я пытаюсь собрать имя клиента, какой курс он прошел, какую оценку он получил, и когда он сдал экзамен или был оценен.
Я обнаружил, что таблица grade_grades
в Moodle позволит мне получить все эти значения данных. Тем не менее, у нас есть установленный процесс отмены регистрации после завершения курса. Как только этот процесс отмены регистрации заканчивается, отчет с grade_grades
перемещается на grade_grades_history
.
В этом запросе ниже я могу получить всю информацию, которую пытаюсь запросить, кроме времени. Я понимаю, что в настоящее время я не запрашиваю запрос, чтобы получить это значение, потому что, когда я делаю это, это нарушает запрос. Я ищу мысли или информацию о том, как можно интегрировать время и в этот запрос.
SELECT
prefix_grade_items.itemname,
prefix_grade_items.grademax,
ROUND(prefix_grade_grades_history.finalgrade, 0) AS finalgrade,
prefix_user.firstname,
prefix_user.lastname,
prefix_user.username
FROM prefix_grade_grades_history
JOIN prefix_user ON prefix_grade_grades_history.userid = prefix_user.id
JOIN prefix_grade_items ON prefix_grade_grades_history.itemid = prefix_grade_items.id
WHERE (prefix_grade_items.itemname IS NOT NULL)
AND (prefix_grade_items.itemtype = 'mod' OR prefix_grade_items.itemtype = 'manual')
AND (prefix_grade_items.itemmodule = 'quiz' OR prefix_grade_items.itemmodule IS NULL)
AND (prefix_grade_grades_history.timemodified IS NOT NULL)
AND (prefix_grade_grades_history.finalgrade > 0)
AND (prefix_user.deleted = 0)
Большая часть первой части - это то, что я собираюсь вытащить. Вторая часть - то, как я хотел бы, чтобы это доставлялось, а также дополнительные критерии для сортировки данных NULL.