【发布时间】:2015-02-20 05:58:23
【问题描述】:
我从 Moodle SQL scripts 获得了这个 SQL 代码 如何使结果包含所有项目名称,无论它是否有分数? prefix_grade_grade 表包含分数 prefix_grade_items 表有项目名称 不知道是哪个厂商的,这些脚本是在Moodle LMS开源系统中使用的
SELECT u.firstname AS 'Name' , u.lastname AS 'Surname', c.fullname AS 'Course', cc.name AS 'Category',
CASE WHEN gi.itemtype = 'Course'
THEN c.fullname + ' Course Total'
ELSE gi.itemname
END AS 'Item Name', ROUND(gg.finalgrade / gg.rawgrademax * 100 ,2) AS Percentage
FROM prefix_course AS c
JOIN prefix_context AS ctx ON c.id = ctx.instanceid
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
WHERE gi.courseid = c.id AND gi.itemname != 'Attendance' AND gi.itemmodule != 'scorm'
ORDER BY `Name` ASC
【问题讨论】:
-
您应该为我们可以使用的表提供一些描述(哪个包含分数,哪个包含项目名称?)。并定义数据库供应商。
-
一些数据和预期输出对您有很大帮助。