Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.55 KB | None | 0 0
  1.  SELECT
  2.                           program_level.id,
  3.                           program_level.name,
  4.                           -- group_concat(concat(units.course_unit_code, '-', passed_papers.result)),
  5.                           count(curriculum_unit.units_id)                                             AS tt_units,
  6.                           COUNT(IF(passed_papers.id IS NOT NULL OR exempted.id IS NOT NULL, 1, NULL)) AS units_completed
  7.                         FROM enrollment
  8.                           INNER JOIN curriculum ON enrollment.curriculum_id = curriculum.id
  9.                           INNER JOIN curriculum_unit ON curriculum.id = curriculum_unit.curriculum_id
  10.                           INNER JOIN program ON curriculum.program_id = program.id
  11.                           INNER JOIN program_level ON curriculum_unit.program_level_id = program_level.id
  12.                           INNER JOIN units ON curriculum_unit.units_id = units.id
  13.                           LEFT JOIN (SELECT DISTINCT
  14.                                        -- passed exams: am using a derived table so that i
  15.                                        -- do not get duplicates coming from multiple attempted results
  16.                                        u.id,
  17.                                        u.course_unit_code,
  18.                                        r.result
  19.                                      FROM results r
  20.                                        INNER JOIN enrollment e ON r.student_id = e.id
  21.                                        INNER JOIN units u ON r.exam_id = u.id
  22.                                      WHERE r.result >= 50 AND e.reg_no = 'TE/000975/19') AS passed_papers ON units.id = passed_papers.id
  23.                           LEFT JOIN (SELECT DISTINCT
  24.                                        -- exempted units
  25.                                        u.id,
  26.                                        u.course_unit_code,
  27.                                        eu.approval
  28.                                      FROM exam_exemption ee
  29.                                        INNER JOIN exemption_unit eu ON ee.id = eu.exam_exemption_id
  30.                                        INNER JOIN units u ON eu.exam_id = u.id
  31.                                        INNER JOIN enrollment e ON ee.student_id = e.id
  32.                                      WHERE eu.approval = 'approved' AND e.reg_no = 'TE/000975/19') AS exempted ON exempted.id = units.id
  33.                         WHERE reg_no = 'TE/000975/19'
  34.                         GROUP BY program_level.id
  35.                         ORDER BY program_level.precedence
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement