Skip to content
Snippets Groups Projects
Commit 6637a32b authored by Anton Bagliy's avatar Anton Bagliy
Browse files

v.2.8.6

parents 13e443ce 5c87d2cc
Branches
No related merge requests found
CREATE OR REPLACE VIEW public.view_final_report
AS SELECT DISTINCT semesters.year AS semesteryear,
semesters.num AS semesternum,
study_plans.externalid AS planexternalid,
subjects.externalid AS subjectexternalid,
record_books.externalid AS recordbookexternalid,
disciplines.examtype,
( SELECT sum(rating_table.rate) AS sum
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = disciplines.id AND modules.type = 'regular'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
GROUP BY modules.disciplineid, rating_table.recordbookid) AS semesterrate,
( SELECT
CASE
WHEN rt.rate IS NOT NULL THEN rt.rate
WHEN rt.rate IS NULL THEN
CASE epo.type
WHEN 'pass'::absence_pass THEN '-2'::integer
WHEN 'absence'::absence_pass THEN '-1'::integer
ELSE NULL::integer
END
ELSE NULL::integer
END AS rate
FROM view_roadmap vr
LEFT JOIN rating_table rt ON vr.submoduleid = rt.submoduleid AND rt.recordbookid = record_books.id
LEFT JOIN exam_period_options epo ON epo.submoduleid = vr.submoduleid AND epo.recordbookid = record_books.id
WHERE vr.disciplineid = disciplines.id AND vr.moduletype = 'exam'::regular_exam_bonus_extra
ORDER BY vr.moduletype, vr.moduleordernum, vr.submoduleordernum
LIMIT 1) AS examrate,
( SELECT
CASE
WHEN rt.rate IS NOT NULL THEN rt.rate
WHEN rt.rate IS NULL THEN
CASE epo.type
WHEN 'pass'::absence_pass THEN 0
WHEN 'absence'::absence_pass THEN '-1'::integer
ELSE NULL::integer
END
ELSE NULL::integer
END AS rate
FROM view_roadmap vr
LEFT JOIN rating_table rt ON vr.submoduleid = rt.submoduleid AND rt.recordbookid = record_books.id
LEFT JOIN exam_period_options epo ON epo.submoduleid = vr.submoduleid AND epo.recordbookid = record_books.id
WHERE vr.disciplineid = disciplines.id AND vr.moduletype = 'exam'::regular_exam_bonus_extra
ORDER BY vr.moduletype, vr.moduleordernum, vr.submoduleordernum
OFFSET 1
LIMIT 1) AS exam2rate,
( SELECT
CASE
WHEN rt.rate IS NOT NULL THEN rt.rate
WHEN rt.rate IS NULL THEN
CASE epo.type
WHEN 'pass'::absence_pass THEN 0
WHEN 'absence'::absence_pass THEN '-1'::integer
ELSE NULL::integer
END
ELSE NULL::integer
END AS rate
FROM view_roadmap vr
LEFT JOIN rating_table rt ON vr.submoduleid = rt.submoduleid AND rt.recordbookid = record_books.id
LEFT JOIN exam_period_options epo ON epo.submoduleid = vr.submoduleid AND epo.recordbookid = record_books.id
WHERE vr.disciplineid = disciplines.id AND vr.moduletype = 'exam'::regular_exam_bonus_extra
ORDER BY vr.moduletype, vr.moduleordernum, vr.submoduleordernum
OFFSET 2
LIMIT 1) AS exam3rate,
( SELECT rating_table.rate
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = disciplines.id AND modules.type = 'extra'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
ORDER BY submodules.ordernum
LIMIT 1) AS extrarate,
( SELECT rating_table.rate
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = disciplines.id AND modules.type = 'extra'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
ORDER BY submodules.ordernum
OFFSET 1
LIMIT 1) AS extra2rate,
( SELECT rating_table.rate
FROM rating_table
JOIN submodules ON rating_table.submoduleid = submodules.id
JOIN modules ON submodules.moduleid = modules.id
WHERE modules.disciplineid = disciplines.id AND modules.type = 'bonus'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
LIMIT 1) AS bonusrate
FROM semesters
JOIN disciplines ON disciplines.semesterid = semesters.id AND disciplines.isinactive = false
JOIN disciplines_study_plans ON disciplines_study_plans.disciplineid = disciplines.id
JOIN study_plans ON study_plans.id = disciplines_study_plans.studyplanid
JOIN subjects ON subjects.id = disciplines.subjectid
JOIN view_disciplines_recordbooks ON view_disciplines_recordbooks.disciplineid = disciplines.id AND 'attach'::attach_detach = COALESCE(view_disciplines_recordbooks.type, 'attach'::attach_detach)
JOIN record_books ON record_books.id = view_disciplines_recordbooks.recordbookid
JOIN record_books_plans ON record_books.id = record_books_plans.recordbookid AND record_books_plans.studyplanid = study_plans.id;
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment