Consultar lista de perfil de um usuário com comando SQL

Consultar lista de perfil de um usuário com comando SQL

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

Para gerar lista de perfil de um determinado usuário independente do curso, execute o seguinte comando SQL:

SELECT DISTINCT r.shortname FROM mdl_role r INNER JOIN mdl_role_assignments rs ON r.id=rs.roleid WHERE rs.userid=?

Passe parâmetro do usuário em rs.userid=?

Para contar  perfil diferente de um determinado usuário independente do curso, execute o seguinte comando SQL:

SELECT COUNT( DISTINCT roleid) AS countrecord FROM  mdl_role_assignments  WHERE userid=?

Passe parâmetro do usuário em rs.userid=?

 

Para verificar se um determinado usuário tem um determinado perfil em um curso, execute o seguinte comando SQL:

SELECT COUNT(rs.id) AS coutrecord  FROM mdl_role r INNER JOIN mdl_role_assignments rs ON r.id=rs.roleid   INNER JOIN mdl_context e ON rs.contextid=e.id WHERE e.contextlevel=50 AND  e.instanceid =? AND r.shortname =? AND rs.userid=?

Passe parâmetro do usuário em rs.userid=?

Passe parâmetro do curso em e.instanceid =?

Passe parâmetro nome breve do perfil emr.shortname =? 

 

Listar cursos que o um usuários está inscrito pela quantidade de perfil com seguinte comando SQL:

SELECT e.instanceid AS courseid,COUNT(rs.roleid) AS countrole  FROM  mdl_role_assignments rs INNER JOIN mdl_context e ON rs.contextid=e.id WHERE e.contextlevel=50 AND rs.userid=? GROUP BY e.instanceid HAVING COUNT(rs.roleid) > ?

Passe parâmetro do usuário em rs.userid=?

Passe parâmetro de quantidade de perfil o em HAVING COUNT(rs.roleid) > ?

Contar quantidade de inscrição por perfil de um usuário

SELECT COUNT(id) AS coutrecord, roleid FROM mdl_role_assignments  WHERE rs.userid=? GROUP BY roleid 

Passe parâmetro do usuário em rs.userid=?

Contar quantidade de inscrição ativa/inativa por perfil de um determinado usuário

SELECT COUNT(rs.id) AS coutrecord,ue.status  FROM mdl_role_assignments 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=?

Passe parâmetro do usuário em rs.userid=?