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

Merge branch 'issue447_export_absense' into 'develop'

exam1,2,3 rates in view_final_report #447

See merge request it-lab/grade!143
parents eba0a062 eef11fde
Branches
No related merge requests found
DROP VIEW IF EXISTS public.view_final_report;
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' then 0
when 'absence' then 0
END
END) as "rate"
FROM view_roadmap AS vr
LEFT JOIN rating_table AS rt ON vr.SubmoduleID = rt.SubmoduleID AND rt.RecordBookID = record_books.id
LEFT JOIN exam_period_options AS 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 ASC,
vr.SubmoduleOrderNum ASC
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' then 0
when 'absence' then 0
END
END) as "rate"
FROM view_roadmap AS vr
LEFT JOIN rating_table AS rt ON vr.SubmoduleID = rt.SubmoduleID AND rt.RecordBookID = record_books.id
LEFT JOIN exam_period_options AS 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 ASC,
vr.SubmoduleOrderNum ASC
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' then 0
when 'absence' then 0
END
END) as "rate"
FROM view_roadmap AS vr
LEFT JOIN rating_table AS rt ON vr.SubmoduleID = rt.SubmoduleID AND rt.RecordBookID = record_books.id
LEFT JOIN exam_period_options AS 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 ASC,
vr.SubmoduleOrderNum ASC
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
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;
\ No newline at end of file
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