Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
学生完成的课程数..MOODLE_Moodle - Fatal编程技术网

学生完成的课程数..MOODLE

学生完成的课程数..MOODLE,moodle,Moodle,在MOODLE完成课程的学生人数是多少? 我使用以下查询: 选择mu.id作为学生id,将(mcc.course)作为已完成的课程从mdl\u用户mu加入mdl\u课程完成mcc上的mcc.userid=mu.id加入mc.id=mcc.course上的mdl\u课程mcc.userid=$user\u id按mu.id分组我注意到您似乎只将结果限制为一个用户id(其中mcc.userid=$user_id),因此如果您想获取多个学生的详细信息,可能应该删除该限制 您实际上不需要加入mdl_课程

在MOODLE完成课程的学生人数是多少? 我使用以下查询:


选择mu.id作为学生id,将(mcc.course)作为已完成的课程从mdl\u用户mu加入mdl\u课程完成mcc上的mcc.userid=mu.id加入mc.id=mcc.course上的mdl\u课程mcc.userid=$user\u id按mu.id分组我注意到您似乎只将结果限制为一个用户id(其中mcc.userid=$user_id),因此如果您想获取多个学生的详细信息,可能应该删除该限制

您实际上不需要加入mdl_课程或mdl_用户表,因为每个学生+课程组合只有一个mdl_课程完成表

但是,您应该在“timecompleted”字段上添加一个限制,以确保它不为空(学生开始学习课程时会创建mdl_课程_结业记录,以记录注册时间和开始时间;课程完成时,也会设置timecompleted字段)

这应该给你:

SELECT userid AS student_id, COUNT(*) AS completed_courses
FROM mdl_course_completions
WHERE timecompleted IS NOT NULL
这将列出每个学生完成的课程数量

相反,如果您希望了解至少完成一门课程的学生人数(如问题开头所述),则查询将为:

SELECT DISTINCT(userid)
FROM mdl_course_completions
WHERE timecompleted IS NOT NULL