Technikai fórum
Lekérdezés
Sziasztok!
Egy lekérdezést szeretnék készíteni, amelyben egy adott kurzus tanulóinak nevét jelenítem meg.
A kérdésem az, hogy mely adattáblákból tudom megoldani a feladatot?
Mely táblán (táblákon) keresztül tudom megteremteni a kapcsolatot a curse és a user táblák között?
Köszönettel: Péter
Sziasztok!
A fenti lekérdezés a course_display nevű tábla alpján megtehető. Itt a 2. oszlop a kurzusazonosító, a 3. oszlop pedig a felhasználó azonosító.Ezek a user illetve course táblák alapján feloldhatók.
Ha egyedi lekérdezésekre van szükség, akkor hasznos lehet ez a kiegészítő modul:
http://moodle.org/plugins/view.php?plugin=block_configurable_reports
Üdv.: Vágvölgyi Csaba
A fenti lekérdezés a course_display nevű tábla alpján megtehető. Itt a 2. oszlop a kurzusazonosító, a 3. oszlop pedig a felhasználó azonosító.Ezek a user illetve course táblák alapján feloldhatók.
Ha egyedi lekérdezésekre van szükség, akkor hasznos lehet ez a kiegészítő modul:
http://moodle.org/plugins/view.php?plugin=block_configurable_reports
Üdv.: Vágvölgyi Csaba
Szia!
Kipróbáltam, de nálam nem változik meg a course_display tábla tartalma, ha beíratok egy tanulót a kurzusba.
Köszönöm a választ!
Én a következőképpen próbálkoztam (configurable_reports-ban):
Select
u.id AS 'Azonosító',
concat(u.lastname, ' ', u.firstname) AS 'Név',
c.fullname AS 'Kurzus neve'
From prefix_user_enrolments AS ue
INNER JOIN prefix_user AS u ON ue.userid=u.id
INNER JOIN prefix_enrol AS e ON ue.enrolid=e.id
INNER JOIN prefix_course AS c ON c.id=e.courseid
%%FILTER_COURSES:e.courseid%%
Order By u.lastname, u.firstname
Ez úgy tűnik, hogy működik, de nem csak a tanulókat listázza ki, hanem mindenkit, aki a kurzushoz tartozik (pl. tanár).
Arra lenne ötleted, hogy miként tudnék student-re szűrni?
Köszönettel: Péter
Végül is van egy ötletem a megoldásra (úgy találtam), csak nem vagyok benne biztos, hogy teljesen korrekt (bár az eredmény jónak tűnik):
INNER JOIN prefix_role_assignments AS asg ON u.id=asg.userid
INNER JOIN prefix_context AS context ON asg.contextid=context.id
where context.contextlevel = 50
AND
context.instanceid=c.id
AND
'student' IN (SELECT shortname FROM prefix_role WHERE id=asg.roleid)