Alumnos no matriculados en ningún curso

Alumnos no matriculados en ningún curso

de Rebeca Aguilar -
Número de respuestas: 2
Hola a todos, no sé si alguno de ustedes sepa como puedo obtener una lista de todos los alumnos que no estén inscritos a ningún curso dentro de la plataforma? Estoy utilizando la versión 2.5.9
Promedio de valoraciones: -
En respuesta a Rebeca Aguilar

Re: Alumnos no matriculados en ningún curso

de Miguel Angel Velasquez Teran -
Imagen de Moodlers de gran ayuda

Te recomiendo que revises los AD-HOC de Moodle desde aquí, ahi tienes la consulta para sacar la cantidad de alumnos matriculados de un curso, por ejemplo la consulta de mas abajo te devuelve el número de estudiantes de cada curso, en el Where puedes aumentar el valor USER.id y vas consultando uno a uno por todos tus usuarios de la tabla USER, obviamente si el count devuelve 0 significa que ese usuario no está matriculado en ningún curso, quizás hay otra consulta que te ayude mejor pero esa fue la primera útil que encontré tímido por ahi lo adaptas mejor a lo que quieres y funciona tal cual como quieres

Student (user) COUNT in each Course

Including (optional) filter by: year (if included in course fullname).


SELECT concat('<a target="_new" href="%%WWWROOT%%/course/view.php?id=',course.id,'">',course.fullname,'</a>') AS Course
,concat('<a target="_new" href="%%WWWROOT%%/user/index.php?contextid=',context.id,'">Show users</a>') AS Users
, COUNT(course.id) AS Students
FROM prefix_role_assignments AS asg
JOIN prefix_context AS context ON asg.contextid = context.id AND context.contextlevel = 50
JOIN prefix_user AS USER ON USER.id = asg.userid
JOIN prefix_course AS course ON context.instanceid = course.id
WHERE asg.roleid = 5
# AND course.fullname LIKE '%2013%'
GROUP BY course.id
ORDER BY COUNT(course.id) DESC



Saludos y suerte

En respuesta a Rebeca Aguilar

Re: Alumnos no matriculados en ningún curso

de Eder dos Santos -

Rebeca,

La resolución puede ser a través de una consulta SQL. Tienes acceso a la base de datos?

De ser así, intenta buscar los usuarios cuyo id no se encuentre en la tabla role_assignments. Algo como:


SELECT * FROM mdl_user

WHERE id NOT IN

( SELECT userid FROM mdl_role_assignments).


Nota: userid es un atributo en role_assignments, y quizás tenga otro nombre en la versión que usas.

Saludos.