学生在 Moodle 中使用了不止一个 Class
Student Taking More than One Class In Moodle
我已尝试进行一些研究,但所有答案都没有完全解决我的简单问题。
在我的 Moodle 课程数据库中,我执行 SQL 查询以查看哪个学生在 24 小时内完成了 class。这很有效,除非学生在 24 小时内完成了两门课程,它只列出了他们选修的第一门课程。
有没有办法让报告显示学生在给定时间段内参加的所有课程?
SELECT
c.shortname AS 'Course Name',
u.lastname AS 'Last Name',
u.firstname AS 'First Name',
u.email,
uid.data AS birthday,
DATE_FORMAT(FROM_UNIXTIME(p.timecompleted),'%m/%d/%Y %T') AS 'Completed Date'
FROM
prefix_course_completions AS p
JOIN prefix_course AS c ON p.course = c.id
JOIN prefix_user AS u ON p.userid = u.id
JOIN prefix_user_info_data AS uid ON uid.userid = u.id
JOIN prefix_user_info_field AS uif ON uid.fieldid = uif.id
WHERE
c.enablecompletion = 1
and uif.shortname = 'birthday'
and from_unixtime(p.timecompleted) >
date_sub(now(), interval 1 day)
GROUP BY u.username
ORDER BY c.shortname
尝试删除您的 GROUP BY u.username。我不太了解它在 moodle 中的表现如何,但是在像您这样的 SQL 查询中没有空间。
我已尝试进行一些研究,但所有答案都没有完全解决我的简单问题。
在我的 Moodle 课程数据库中,我执行 SQL 查询以查看哪个学生在 24 小时内完成了 class。这很有效,除非学生在 24 小时内完成了两门课程,它只列出了他们选修的第一门课程。
有没有办法让报告显示学生在给定时间段内参加的所有课程?
SELECT
c.shortname AS 'Course Name',
u.lastname AS 'Last Name',
u.firstname AS 'First Name',
u.email,
uid.data AS birthday,
DATE_FORMAT(FROM_UNIXTIME(p.timecompleted),'%m/%d/%Y %T') AS 'Completed Date'
FROM
prefix_course_completions AS p
JOIN prefix_course AS c ON p.course = c.id
JOIN prefix_user AS u ON p.userid = u.id
JOIN prefix_user_info_data AS uid ON uid.userid = u.id
JOIN prefix_user_info_field AS uif ON uid.fieldid = uif.id
WHERE
c.enablecompletion = 1
and uif.shortname = 'birthday'
and from_unixtime(p.timecompleted) >
date_sub(now(), interval 1 day)
GROUP BY u.username
ORDER BY c.shortname
尝试删除您的 GROUP BY u.username。我不太了解它在 moodle 中的表现如何,但是在像您这样的 SQL 查询中没有空间。