Mapear alunos que não acessaram o curso do Moodle nos últimos 7 dias com comando SQL

Mapear alunos que não acessaram o curso do Moodle nos últimos 7 dias com comando SQL

por Lino Vaz Moniz -
Número de respostas: 0
O objetivo desse post é mostrar como extrais uma lista de usuário não realizaram nenhum acesso ao ambiente de curso na Plataforma Moodle nos últimos 7 dias.
  
 A lista será gerada no banco de dados pelo comando SQL.  Para extrair essa lista, siga os seguintes passos:

1)    Extrair data em formato timestamp de 7 dias atrás. Gere essa data com comando de programação. Você pode usar esse link http://www.onlineconversion.com/unix_time.htm para gerar essa data.  Se hoje é dia 10/06/2015, 7 dia atrás é dia 03/06/2015. Converta essa data em timestamp

2)    Execute o comando SQL no banco:

Versão do Moodle:  até  2.6
SELECT u.id, u.firstname,u.lastname FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id WHERE e.contextlevel=50 AND rs.roleid=5 AND e.instanceid=? AND u.id NOT IN (SELECT DISTINCT userid FROM mdl_log WHERE course=? AND time >=? )

Passe o parâmetro id do curso  em e.instanceid=? da consulta principal e course=? da subconsulta.

Passe o parâmetro data em formato numérico timestamp relativo a data de 7 dias atrás gerado no item 1) em time >=?


Versão do Moodle:  a partir de  2.7
SELECT u.id, u.firstname,u.lastname FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id WHERE e.contextlevel=50 AND rs.roleid=5 AND e.instanceid=? AND u.id NOT IN (SELECT DISTINCT userid FROM mdl_logstore_standard_log WHERE courseid=? AND timecreated >=? )
Passe o parâmetro id do curso  em e.instanceid=? da consulta principal e courseid =? da subconsulta.

Passe o parâmetro data em formato numérico timestamp relativo a data de 7 dias atrás gerado no item 1) em timecreated >=?


Sugestão de leitura
Sobre esse assunto, é recomendável fazer uma leitura dos posts abaixo: