Relatório de nota final de todos os alunos e em todos os cursos do Moodle com comando SQL

Relatório de nota final de todos os alunos e em todos os cursos do Moodle com comando SQL

por Lino Vaz Moniz -
Número de respostas: 0

Segue o comando SQL  que extrai a relação de todos os alunos e a nota final em todos curso da Plataforma Moodle. Esse comando usa função de data para MySQL.  Caso for usar para base PostgreSql, mude a função  from_unixtime

SELECT rs.id,u.firstname,u.lastname,u.username,u.institution,u.department,u.email,u.city,c.id AS courseid,c.fullname AS course,ct.name AS category,r.shortname AS roleshortname,g.finalgrade,from_unixtime(g.timemodified, '%d/%m/%Y %H:%i:%s') AS gradetimeupdate,from_unixtime(ue.timestart, '%d/%m/%Y %H:%i:%s') AS enroltimestart,from_unixtime(ue.timeend, '%d/%m/%Y %H:%i:%s') AS enroltimeend FROM mdl_role_assignments rs INNER JOIN mdl_role r ON rs.roleid=r.id INNER JOIN mdl_user u ON rs.userid=u.id INNER JOIN mdl_context e ON rs.contextid=e.id INNER JOIN mdl_enrol en ON e.instanceid=en.courseid INNER JOIN mdl_course c ON c.id=en.courseid INNER JOIN mdl_course_categories ct ON ct.id=c.category INNER JOIN mdl_user_enrolments ue ON ( en.id=ue.enrolid AND rs.userid=ue.userid ) LEFT JOIN mdl_grade_items i ON c.id=i.courseid LEFT JOIN mdl_grade_grades g ON (g.itemid=i.id AND rs.userid=g.userid ) WHERE e.contextlevel=50 AND (i.itemtype = 'course' OR i.itemtype IS NULL ) AND c.visible= 1 AND ue.status = 0 AND en.status = 0

Execute esse comando no terminal SQL. Caso tiver muitos registro, adicione o comando LIMIT para não estaurar a memória.