Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Вставка колонок
- WITH
- lesson AS (
- SELECT
- l.s_subject,
- l.s_group,
- l.s_vfur,
- l.s_department,
- ts.s_user,
- ts.s_emp_dolgn,
- ts.s_emp_work_type,
- l.time,
- l.date,
- l.half_year,
- l.year_begin,
- ts.semester
- FROM get_timetable_lessons1(date_begin, date_end) l
- INNER JOIN timetable_subject ts ON ts.id = l.s_timetable_subject
- WHERE l.s_department <> v_dopcps_id
- ),
- col_data AS (
- SELECT
- p.id s_page,
- v_col_type s_type,
- l.date,
- l.time,
- TRUE is_imported,
- pesg.subgroup
- FROM group_book_page p
- -- нагрузка нужна чтобы не потерять заочников с half_year = null
- INNER JOIN profile_emp_subject pes ON pes.s_subject = p.s_subject
- AND pes.s_vfur = p.s_vfur
- AND pes.half_year = p.half_year
- AND pes.b_year = p.year_begin
- INNER JOIN profile_emp_student_group pesg ON pes.id = pesg.s_emp_subject
- AND pesg.s_student_group = p.s_group
- INNER JOIN lesson l ON pesg.s_student_group = l.s_group
- AND pes.s_vfur = l.s_vfur
- AND pes.s_subject = l.s_subject
- AND pes.b_year = l.year_begin
- AND pes.s_user = l.s_user
- AND pes.s_emp_dolgn = l.s_emp_dolgn
- AND pes.s_chair = l.s_department
- -- если half_year = null, будет использован семестр
- LEFT OUTER JOIN profile_emp_semester pes_sem ON pes.id = pes_sem.s_emp_subject
- AND l.semester = pes_sem.semester
- WHERE (l.half_year = pes.half_year OR pes_sem.s_emp_subject IS NOT NULL)
- ),
- col_ins AS (
- INSERT INTO group_book_column (s_page, s_type, date, "time", is_imported)
- SELECT DISTINCT
- col_data.s_page,
- col_data.s_type,
- col_data.date,
- col_data.time,
- col_data.is_imported
- FROM col_data
- LEFT OUTER JOIN group_book_column c ON c.s_page = col_data.s_page
- AND c.s_type = col_data.s_type
- AND c.date = col_data.date
- AND c.time = col_data.time
- AND c.is_imported IS TRUE
- WHERE c.id IS NULL
- RETURNING
- group_book_column.id,
- group_book_column.s_page,
- group_book_column.s_type,
- group_book_column."date",
- group_book_column."time",
- group_book_column.is_imported
- ),
- sign_ins AS (
- INSERT INTO group_book_column_sign (s_signer, s_column, subgroup)
- SELECT
- v_signer_teacher AS s_signer,
- col.id AS s_column,
- cd.subgroup
- FROM group_book_page page
- INNER JOIN col_ins col ON page.id = col.s_page
- INNER JOIN col_data cd ON cd.s_page = col.s_page
- AND cd.s_type = col.s_type
- AND cd.date = col.date
- AND cd.time = col.time
- AND cd.is_imported = col.is_imported
- UNION SELECT
- v_signer_student AS s_signer,
- col.id as s_column,
- NULL as subgroup
- FROM col_ins col
- RETURNING group_book_column_sign.id
- )
- SELECT
- (SELECT count(id) FROM col_ins) as cols_ins,
- (SELECT count(id) FROM sign_ins) as signs_ins
- INTO cols_inserted, signs_inserted;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement