DROP VIEW IF EXISTS `Вирт_Экзаменационная комиссия`;
CREATE VIEW `Вирт_Экзаменационная комиссия` AS
SELECT
`Ком`.`Регномер` AS `Регномер комиссии`,
`Кам`.`Год_кампании` AS `Год кампании`,
`Кам`.`Сроки` AS `Сроки кампании`,
`Дис`.`Код_дисциплины` AS `Код дисциплины`,
`Дис`.`Название_дисциплины` AS `Название дисциплины`,
`При`.`Регномер` AS `Регномер приказа`,
`При`.`Дата` AS `Дата приказа`,
`Сот`.`Код` AS `Код руководителя`,
`Сот`.`ФИО` AS `ФИО руководителя`,
`Спр`.`Код` AS `Код должности`,
`Спр`.`Название` AS `Название должности`,
`Ком`.`Ид` AS `Ид\Экзаменационная комиссия`
FROM `Комиссия` AS `Ком`
INNER JOIN `Кампания` AS `Кам` ON `Ком`.`Ид\КОМ^КАМ` = `Кам`.`Ид`
INNER JOIN `Дисциплина` AS `Дис` ON `Ком`.`Ид\КОМ^ДИС` = `Дис`.`Ид`
INNER JOIN `Приказ` AS `При` ON `Ком`.`Ид\КОМ^ПРИ` = `При`.`Ид`
INNER JOIN `Руководитель:СОТ` AS `Рук` ON `При`.`Ид\ПРИ^РУК` = `Рук`.`Ид\РУК^СОТ`
INNER JOIN `Сотрудник%ПЕРС` AS `Сот` ON `Рук`.`Ид\РУК^СОТ` = `Сот`.`Ид`
INNER JOIN `Справка+` AS `Спр` ON `Сот`.`Ид\СОТ^ДОЛ` = `Спр`.`Ид`
;
SELECT * FROM `Вирт_Экзаменационная комиссия`;
DROP PROCEDURE IF EXISTS `Проц_Состав`;
CREATE PROCEDURE `Проц_Состав`
(IN `@Ид\Экзаменационная комиссия` INT)
SELECT
`Сот`.`Код` AS `Код преподавателя`,
`Сос`.`Нпп` AS `Нпп`,
`Сот`.`ФИО` AS `ФИО преподавателя`,
`Спр`.`Код` AS `Код должности`,
`Спр`.`Название` AS `Название должности`,
`Каф`.`Код_кафедры` AS `Код кафедры`,
`Каф`.`Название_кафедры` AS `Название кафедры`,
`Спр2`.`Код` AS `Код факультета`,
`Спр2`.`Название` AS `Название факультета`,
`Сос`.`Роль` AS `Роль`
FROM `Состав:ПРЕ*КОМ` AS `Сос`
INNER JOIN `Преподаватель:СОТ` AS `Пре` ON `Сос`.`Ид\СОС^ПРЕ` = `Пре`.`Ид\ПРЕ^СОТ`
INNER JOIN `Сотрудник%ПЕРС` AS `Сот` ON `Пре`.`Ид\ПРЕ^СОТ` = `Сот`.`Ид`
INNER JOIN `Справка+` AS `Спр` ON `Сот`.`Ид\СОТ^ДОЛ` = `Спр`.`Ид`
INNER JOIN `Кафедра:ФАК` AS `Каф` ON `Пре`.`Ид\ПРЕ^КАФ` = `Каф`.`Ид\КАФ^ФАК`
INNER JOIN `Справка+` AS `Спр2` ON `Каф`.`Ид\КАФ^ФАК` = `Спр2`.`Ид`
WHERE `Сос`.`Ид\СОС^КОМ` = `@Ид\Экзаменационная комиссия`
;
CALL `Проц_Состав` (1);
CALL `Проц_Состав` (2);
DROP PROCEDURE IF EXISTS `Проц_Экзамен`;
CREATE PROCEDURE `Проц_Экзамен`
(IN `@Ид\Абитуриент` INT)
SELECT
`Аби`.`ФИО` AS `ФИО абитуриента`,
`Экз`.`Нпп` AS `Нпп экзамена`,
`Дис`.`Название_дисциплины` AS `Название дисциплины`,
`Экз`.`Оценка` AS `Оценка`,
`Экз`.`Дата` AS `Дата экзамена`,
`Ком`.`Регномер` AS `Регномер комиссии`
FROM `Экзамен:АБИ*ДИС` AS `Экз`
INNER JOIN `Абитуриент%ПЕРС` AS `Аби` ON `Экз`.`Ид\ЭКЗ^АБИ` = `Аби`.`Ид`
INNER JOIN `Дисциплина` AS `Дис` ON `Экз`.`Ид\ЭКЗ^ДИС` = `Дис`.`Ид`
INNER JOIN `Комиссия` AS `Ком` ON `Ком`.`Ид\КОМ^ДИС` = `Дис`.`Ид`
WHERE `Аби`.`Ид` = `@Ид\Абитуриент`
;
CALL `Проц_Экзамен` (1);
CALL `Проц_Экзамен` (2);
DROP PROCEDURE IF EXISTS `Проц_Решение по абитуриенту`;
CREATE PROCEDURE `Проц_Решение по абитуриенту` ()
SELECT
`Аби`.`Регномер_заявления` AS `Регномер заявления`,
`Аби`.`ФИО` AS `ФИО абитуриента`,
`Репа`.`Решение` AS `Решение`,
`При`.`Регномер` AS `Регномер приказа`,
`При`.`Дата` AS `Дата приказа`,
`Зпко`.`Регномер` AS `Регномер заседания`,
`Кам`.`Год_кампании` AS `Год кампании`,
AVG(`Экз`.`Оценка`) AS `Средний балл абитуриента`
FROM `Решение по абитуриенту:ЗПКО` AS `Репа`
INNER JOIN `Абитуриент%ПЕРС` AS `Аби` ON `Репа`.`Ид\РЕПА^АБИ` = `Аби`.`Ид`
INNER JOIN `Приказ` AS `При` ON `Репа`.`Ид\РЕПА^ПРИ` = `При`.`Ид`
LEFT JOIN `Заседание приемной комиссии` AS `Зпко` ON `Репа`.`Ид\РЕПА^ЗПКО` = `Зпко`.`Ид`
INNER JOIN `Кампания` AS `Кам` ON `Аби`.`Ид\АБИ^КАМ` = `Кам`.`Ид`
LEFT JOIN `Экзамен:АБИ*ДИС` AS `Экз` ON `Экз`.`Ид\ЭКЗ^АБИ` = `Аби`.`Ид`
GROUP BY
`Аби`.`Регномер_заявления`,
`Аби`.`ФИО`,
`Кам`.`Год_кампании`;
;
CALL `Проц_Решение по абитуриенту` ();