Para rastrear no banco o progresso de atividades, ou seja, quantas atividades o aluno já completou com SQL, é necessário executar os seguintes comandos:
Verificar se o curso está com rastreamento de conclusão habilitado
SELECT COUNT(id) AS countrecord FROM mdl_course WHERE id=? AND enablecompletion = 1
Passe o parâmetro id do curso em id=?
Consultar total de atividades com configuração de conclusão
SELECT COUNT(id) AS countrecord FROM mdl_course_modules WHERE course=? AND completion > 0
Passe o parâmetro id do curso em course=?
Consultar total de atividade completadas pelo aluno
SELECT COUNT(c.id) AS countrecord FROM mdl_course_modules_completion c INNER JOIN mdl_course_modules m ON c.coursemoduleid = m.id WHERE c.userid=? AND m.course=? AND m.completion > 0 AND c.completionstate > 0 AND c.completionstate < 3
Passe o parâmetro id do curso em m.course=? e id do aluno e c.userid=?
Consultar total de atividade com rastreamento de conclusão dos cursos de um determinado aluno
SELECT c.id,COUNT(cm.completion) AS countprogressactivity FROM mdl_role_assignments rs INNER JOIN mdl_context e ON rs.contextid=e.id INNER JOIN mdl_course c ON c.id=e.instanceid INNER JOIN mdl_course_modules cm ON cm.course=c.id WHERE e.contextlevel=50 AND rs.userid=? AND cm.completion > 0 GROUP BY c.id
Passe o parâmetro id do aluno em rs.userid=?
Consultar total de atividade concluídas dos cursos de um determinado aluno
SELECT cm.course,COUNT(cmp.completionstate) AS countrecord FROM mdl_course_modules_completion cmp INNER JOIN mdl_course_modules cm ON cmp.coursemoduleid = cm.id WHERE cmp.userid=? AND cm.completion > 0 AND cmp.completionstate > 0 AND cmp.completionstate < 3 GROUP BY cm.course
Passe o parâmetro id do aluno em cmp.userid=?