Segue um conjunto de comando SQL para extrair relatório de mensagens não lidas no banco de dados do Moodle
Quantidade de mensagens não lidas destinas a um determinado usuário
SELECT COUNT(id) FROM mdl_message WHERE useridto=?
Passe id do usuário destinatário das mensagens no parâmetro useridto=?
Quantidade de usuários que tem pelo menos uma mensagem não lida
SELECT COUNT(DISTINCT useridto) FROM mdl_message
Quantidade de remetentes que tem pelo menos uma mensagem que ainda não foi lida
SELECT COUNT(DISTINCT useridfrom) FROM mdl_message
Quantidade de mensagem não lida
SELECT COUNT(id) FROM mdl_message
Listar usuário por faixa de quantidade de mensagem não lida. Usuário que tem entre 100 e 200 mensagens não lidas
SELECT useridto,COUNT(id) FROM mdl_message GROUP BY useridto HAVING COUNT(useridto) BETWEEN 100 AND 200
Os valores no comando BETWEEN podem ser parametrizadas
Listar usuário que tem mais de 100 mensagens não lidas
SELECT useridto,COUNT(id) FROM mdl_message GROUP BY useridto HAVING COUNT(useridto) >100
O valore no comando BETWEEN pode ser parametrizdo
Listar usuário (com nome e e-mail) que tem mais de 100 mensagens não lidas
SELECT m.useridto,u.firstname,u.lastname,u.email,COUNT(m.id) FROM mdl_message m INNER JOIN mdl_user u GROUP BY m.useridto,u.firstname,u.lastname,u.email HAVING COUNT(m.useridto) >100 ORDER BY COUNT(m.useridto) DESC
O valore no comando BETWEEN pode ser parametrizdo
Para explorar mais sobre as mensagens acesse esse post: http://moodlesql.blogspot.com.br/2010/10/explorando-mensagem-do-moodle-com.html