SELECT DISTINCT u.username AS 'User', CONCAT(u.firstname, ' ',u.lastname) AS 'Full Name', u.email AS Email, (SELECT shortname FROM prefix_role WHERE id=en.roleid) AS ROLE, CASE WHEN gi.itemtype = 'Course' THEN c.Fullname ELSE gi.itemname END AS 'Course', CASE WHEN ROUND(gg.finalgrade) >= 97 THEN 'A+' WHEN ROUND(gg.finalgrade) >= 95 THEN 'A' WHEN ROUND(gg.finalgrade) >= 90 THEN 'A-' WHEN ROUND(gg.finalgrade) >= 87 THEN 'B+' WHEN ROUND(gg.finalgrade) >= 83 THEN 'B' WHEN ROUND(gg.finalgrade) >= 80 THEN 'B-' WHEN ROUND(gg.finalgrade) >= 77 THEN 'C+' WHEN ROUND(gg.finalgrade) >= 73 THEN 'C' WHEN ROUND(gg.finalgrade) >= 70 THEN 'C-' WHEN ROUND(gg.finalgrade) >= 67 THEN 'D+' WHEN ROUND(gg.finalgrade) >= 63 THEN 'D' WHEN ROUND(gg.finalgrade) >=60 THEN 'D-' WHEN ROUND(gg.finalgrade) >=0 THEN 'F' ELSE 'INC' END AS 'Letter Grade' FROM prefix_course AS c JOIN prefix_context AS ctx ON c.id = ctx.instanceid JOIN prefix_enrol AS en ON en.courseid = c.id JOIN prefix_user_enrolments AS ue ON ue.enrolid = en.id JOIN prefix_role_assignments AS ra ON ra.contextid = ctx.id JOIN prefix_user AS u ON u.id = ra.userid JOIN prefix_grade_grades AS gg ON gg.userid = u.id JOIN prefix_grade_items AS gi ON gi.id = gg.itemid JOIN prefix_course_categories AS cc ON cc.id = c.category %%FILTER_COURSES:c.id%% %%FILTER_ROLE:en.roleid%% %%FILTER_USERS:u.username%% WHERE gi.courseid = c.id AND gi.itemtype = 'course' AND cc.name != 'Miscellaneous' AND u.deleted = '0' AND u.suspended = '0'