Mapear tutores inscritos em um curso com comando SQL levando em conta inscrição ativas, usuários ativos

Mapear tutores inscritos em um curso com comando SQL levando em conta inscrição ativas, usuários ativos

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

Para listar todos os tutores de um curso, filtrando apenas:

  • Inscrições não suspensas
  • Inscrições com data de início e encerramento dentro de período de validade
  • Usuário com cadastro não suspenso, não deletado e confirmado

Execute o seguinte comando SQL:

SELECT DISTINCT u.id AS userid,u.firstname,u.lastname,u.email 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_user_enrolments ue ON en.id=ue.enrolid WHERE e.contextlevel=50 AND rs.userid=ue.userid  AND en.courseid =? AND ue.status = 0 AND en.status = 0 AND u.deleted=0 AND u.confirmed=1 AND  u.suspended =0 AND (ue.timestart IS NULL OR ue.timestart = 0 OR ue.timestart <= ? ) AND (ue.timeend IS NULL OR ue.timeend = 0 OR ue.timeend >= ? ) AND r.shortname='editingteacher'

Passe parâmetro id curso em en.courseid =?

Passe parâmetro data atual em formato timestamp   ue.timestart <= ? e  ue.timeend >= ?