sábado, 6 de novembro de 2010

Listar os Cursos do Moodle sem Inscrição de Aluno com Comando SQL

Caso você precise filtrar uma lista de curso cadastrados no Moodle que não tenha nenhum aluno matriculado, certamente vai precisar fazer essa consulta diretamente no banco de dados uma vez que a interface do Moodle não oferece essa opção de relatórios.


Esse relatório puxa informação de três tabelas:
  • mdl_course - Tabela de curso
  • mdl_context - Tabela com informações de contexto
  • mdl_role_assignments – Tabela da matrícula


O comando SQL que faz a consulta é:


SELECT id,fullname FROM mdl_course WHERE id NOT IN (SELECT DISTINCT e.instanceid FROM mdl_role_assignments rs INNER JOIN mdl_context e ON rs.contextid= e.id WHERE e.contextlevel=50 AND rs.roleid=5)


A consulta, lista id e nome do curso. Na cláusula WHERE há uma sub consulta que exclui todos os cursos que tiver algum aluno matriculado.


O resultado dessa consulta, lista apenas os cursos que não tiverem nenhum aluno cadastrado. Esse tipo de relatório é importante para mapear os curso criados no Moodle que ainda não receberam nenhuma matrícula de aluno.

Um comentário: