Query en Mysql para sacar calificaciones con escalas

Query en Mysql para sacar calificaciones con escalas

de Carlos Diaz Perez (ESRP) -
Número de respuestas: 0

Tenía que sacar los datos de las calificaciones de un alumno directamente de la base de datos y he visto que, en el caso de tener las calificaciones con escala, estaba bastante complicado, he hecho este select que sí que lo consigue.

Lo pongo aquí por si a alguien le sirve de ayuda.

SELECT mdl_user.firstname AS apellidos , mdl_user.lastname AS nombre,
concat(mdl_user.firstname, ' ',mdl_user.lastname) AS alumno,
mdl_course.fullname AS curso, mdl_course_categories.name AS categoria, mdl_course.id,
CASE WHEN mdl_grade_items.itemtype = 'course' THEN concat('Total assignatura: ')
WHEN mdl_grade_items.itemtype ='category' THEN mdl_grade_categories.fullname ELSE mdl_grade_items.itemname
END AS elementocalificador, mdl_grade_grades.itemid, ROUND(mdl_grade_grades.finalgrade,2) AS nota, mdl_scale.scale,

if(ROUND(mdl_grade_grades.finalgrade)<2,SUBSTRING_INDEX(mdl_scale.scale,',',ROUND(mdl_grade_grades.finalgrade)),
substring(SUBSTRING_INDEX(mdl_scale.scale,',',ROUND(mdl_grade_grades.finalgrade)),((length(SUBSTRING_INDEX(mdl_scale.scale,',',ROUND(mdl_grade_grades.finalgrade)))-length(SUBSTRING_INDEX(mdl_scale.scale,',',ROUND(mdl_grade_grades.finalgrade)-1))-1)*-1))) as texto,


DATE_ADD('1970-01-01', INTERVAL mdl_grade_items.timemodified SECOND) AS fechanota,
mdl_grade_items.itemtype as tipoelemento, mdl_grade_items.sortorder, mdl_grade_items.hidden
FROM mdl_course
JOIN mdl_context  ON mdl_course.id = mdl_context.instanceid
JOIN mdl_role_assignments ON mdl_role_assignments.contextid = mdl_context.id
JOIN mdl_user  ON mdl_user.id = mdl_role_assignments.userid
JOIN mdl_grade_grades ON mdl_grade_grades.userid = mdl_user.id
JOIN mdl_grade_items ON mdl_grade_items.id = mdl_grade_grades.itemid
left join mdl_grade_categories on mdl_grade_categories.id = mdl_grade_items.iteminstance
JOIN mdl_course_categories ON mdl_course_categories.id = mdl_course.category
left join mdl_scale on mdl_scale.id = mdl_grade_grades.rawscaleid
WHERE mdl_grade_items.courseid = mdl_course.id and mdl_user.username = 'xxxxx'
and mdl_grade_grades.finalgrade is not null and mdl_grade_items.hidden=0
ORDER BY curso, sortorder



Promedio de valoraciones:Útil (2)