DROP TABLE IF EXISTS `Справка`;
CREATE TABLE `Справка`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Слк` CHAR (4) NOT NULL
, `Код` CHAR (4) NOT NULL
, `Название` VARCHAR (50) NOT NULL
, CONSTRAINT `Ун\СПР` UNIQUE (`Код`,`Слк`)
);
INSERT INTO `Справка` VALUES
(DEFAULT,'ДОЛ','про','профессор'),
(DEFAULT,'ДОЛ','доц','доцент'),
(DEFAULT,'ВОСН', 'эл', 'электронный'),
(DEFAULT,'ВОСН', 'пис', 'письменный'),
(DEFAULT,'КАФ', 'мфк', 'Медицинской физики с курсом информатики'),
(DEFAULT,'КАФ', 'пип', 'Педагогики и психологии'),
(DEFAULT,'СПЕЦ', 'ивт', 'Информатика и вычислительная техника'),
(DEFAULT,'СПЕЦ', 'гд', 'Гостиничное дело'),
(DEFAULT,'ВСДЧ', 'эл', 'электронный'),
(DEFAULT,'ВСДЧ', 'пис', 'письменный');
SELECT '`Справка` Table Content:' FROM `Справка` WHERE 1=0;
SELECT * FROM `Справка`;
DROP TABLE IF EXISTS `Сотрудник%ПЕРС`;
CREATE TABLE `Сотрудник%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\СПР` INT NOT NULL
, `Код` CHAR (10) NOT NULL UNIQUE
, `Паспорт` CHAR (10) NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
);
INSERT INTO `Сотрудник%ПЕРС` VALUES
(DEFAULT,(SELECT `Ид` FROM `Справка` WHERE `Слк` = "ДОЛ" AND `Код` = "доц"),"001-П", "345678", "Петров А. А."),
(DEFAULT,(SELECT `Ид` FROM `Справка` WHERE `Слк` = "ДОЛ" AND `Код` = "доц"),"002-П", "456789", "Боширов Р. Р."),
(DEFAULT,(SELECT `Ид` FROM `Справка` WHERE `Слк` = "ДОЛ" AND `Код` = "про"),"099-В", "567890", "Исаев М. М.");
SELECT "`Сотрудник%ПЕРС` Table Content:" FROM `Сотрудник%ПЕРС` WHERE 1=0;
SELECT * FROM `Сотрудник%ПЕРС`;
DROP TABLE IF EXISTS `Группа\СПЕЦ`;
CREATE TABLE `Группа\СПЕЦ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\СПР` INT NOT NULL
, `Номер группы студента` INT (10) NOT NULL
, `Курс группы` INT (10) NOT NULL
, CONSTRAINT `Ун\ГР` UNIQUE (`Ид\СПР`, `Номер группы студента`)
);
INSERT INTO `Группа\СПЕЦ` VALUES
(DEFAULT,(SELECT `Ид` FROM `Справка` WHERE `Слк` = "Спец" AND `Код` = "гд"),"33", "3"),
(DEFAULT,(SELECT `Ид` FROM `Справка` WHERE `Слк` = "Спец" AND `Код` = "гд"),"34", "3"),
(DEFAULT,(SELECT `Ид` FROM `Справка` WHERE `Слк` = "Спец" AND `Код` = "ивт"),"35", "3");
SELECT "`Группа\СПЕЦ` Table Content:" FROM `Группа\СПЕЦ` WHERE 1=0;
SELECT * FROM `Группа\СПЕЦ`;
DROP TABLE IF EXISTS `Предмет\СПЕЦ`;
CREATE TABLE `Предмет\СПЕЦ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код предмета` CHAR (10) NOT NULL
, `Название предмета` VARCHAR (70) NOT NULL
, `Ид\СПР` INT NOT NULL
, CONSTRAINT `Ун\ПРЕД` UNIQUE (`Ид\СПР`, `Код предмета`)
);
INSERT INTO `Предмет\СПЕЦ` VALUES
(DEFAULT,"физ", "физика",(SELECT `Ид` FROM `Справка` WHERE `Слк` = "Спец" AND `Код` = "гд")),
(DEFAULT,"физ", "физика",(SELECT `Ид` FROM `Справка` WHERE `Слк` = "Спец" AND `Код` = "ивт")),
(DEFAULT,"ооп", "объектно-ориентированное программирование", (SELECT `Ид` FROM `Справка` WHERE `Слк` = "Спец" AND `Код` = "ивт")),
(DEFAULT,"пикпо", "проектирование и конструирование программного обеспечения", (SELECT `Ид` FROM `Справка` WHERE `Слк` = "Спец" AND `Код` = "ивт"));
SELECT "`Предмет\СПЕЦ` Table Content:" FROM `Предмет\СПЕЦ` WHERE 1=0;
SELECT * FROM `Предмет\СПЕЦ`;
DROP TABLE IF EXISTS `Преподаватель:СОТ`;
CREATE TABLE `Преподаватель:СОТ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\СОТ` CHAR (10) NOT NULL UNIQUE
, `Ид\СПР` CHAR (10) NOT NULL
);
INSERT INTO `Преподаватель:СОТ` VALUES
(DEFAULT,(SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-П"),(SELECT `Ид` FROM `Справка` WHERE `Слк` = "КАФ" AND `Код` = "мфк")),
(DEFAULT,(SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "002-П"),(SELECT `Ид` FROM `Справка` WHERE `Слк` = "КАФ" AND `Код` = "пип"));
SELECT "`Преподаватель:СОТ` Table Content:" FROM `Преподаватель:СОТ` WHERE 1=0;
SELECT * FROM `Преподаватель:СОТ`;
DROP TABLE IF EXISTS `Сотрудник деканата:СОТ`;
CREATE TABLE `Сотрудник деканата:СОТ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\СОТ` INT NOT NULL UNIQUE
);
INSERT INTO `Сотрудник деканата:СОТ` VALUES
(DEFAULT,(SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-П")),
(DEFAULT,(SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "002-П"));
SELECT "`Сотрудник деканата:СОТ` Table Content:" FROM `Сотрудник деканата:СОТ` WHERE 1=0;
SELECT * FROM `Сотрудник деканата:СОТ`;
DROP TABLE IF EXISTS `Руководитель:СОТ`;
CREATE TABLE `Руководитель:СОТ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\СОТ` INT NOT NULL UNIQUE
);
INSERT INTO `Руководитель:СОТ` VALUES
(DEFAULT,(SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "099-В"));
SELECT "`Руководитель:СОТ` Table Content:" FROM `Руководитель:СОТ` WHERE 1=0;
SELECT * FROM `Руководитель:СОТ`;
DROP TABLE IF EXISTS `Студент%ПЕРС`;
CREATE TABLE `Студент%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` CHAR (10) NOT NULL UNIQUE
, `Паспорт` CHAR (10) NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Ид\ГР` INT NOT NULL
);
INSERT INTO `Студент%ПЕРС` VALUES
(DEFAULT,"001-С", "666666", "Сидоров А. А.",(SELECT `Ид` FROM `Группа\СПЕЦ` WHERE `Номер группы студента` = "33" AND `Ид\СПР` = 8)),
(DEFAULT,"002-С", "777777", "Петров Р. Р.", (SELECT `Ид` FROM `Группа\СПЕЦ` WHERE `Номер группы студента` = "33" AND `Ид\СПР` = 8)),
(DEFAULT,"099-С", "999999", "Мусалиев М. М.",(SELECT `Ид` FROM `Группа\СПЕЦ` WHERE `Номер группы студента` = "33" AND `Ид\СПР` = 8));
SELECT "`Студент%ПЕРС` Table Content:" FROM `Студент%ПЕРС` WHERE 1=0;
SELECT * FROM `Студент%ПЕРС`;
DROP TABLE IF EXISTS `Приказ о продлении сессии`;
CREATE TABLE `Приказ о продлении сессии`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер приказа` CHAR (10) NOT NULL UNIQUE
, `Дата приказа` DATE NOT NULL
, `Содержание основания` VARCHAR (50) NOT NULL
, `Ид\СПР` INT NOT NULL
, `Ид\СОТД` INT NOT NULL
, `Ид\РУК` INT NOT NULL
);
INSERT INTO `Приказ о продлении сессии` VALUES
(DEFAULT,"555-Б", "1999.02.12", "В связи с болезнью",(SELECT `Ид` FROM `Справка` WHERE `Слк` = "ВОСН" AND `Код` = "пис"),(SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-П"),(SELECT `Ид` FROM `Руководитель:СОТ` WHERE `Ид\СОТ` = "3")),
(DEFAULT,"077-СО", "1999.02.12", "В связи с семейными обстоятельствами",(SELECT `Ид` FROM `Справка` WHERE `Слк` = "ВОСН" AND `Код` = "пис"),(SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-П"),(SELECT `Ид` FROM `Руководитель:СОТ` WHERE `Ид\СОТ` = "3"));
SELECT "`Приказ о продлении сессии` Table Content:" FROM `Приказ о продлении сессии` WHERE 1=0;
SELECT * FROM `Приказ о продлении сессии`;
DROP TABLE IF EXISTS `Корпус`;
CREATE TABLE `Корпус`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Номер корпуса` int (10) NOT NULL UNIQUE
, `Адрес корпуса` VARCHAR (35) NOT NULL UNIQUE
);
INSERT INTO `Корпус` VALUES
(DEFAULT,3,"ул.Мингажева 162"),
(DEFAULT,5,"ул.Мингажева 160"),
(DEFAULT,6,"ул.Мингажева 158");
SELECT "`Корпус` Table Content:" FROM `Корпус` WHERE 1=0;
SELECT * FROM `Корпус`;
DROP TABLE IF EXISTS `Аудитория\КРП`;
CREATE TABLE `Аудитория\КРП`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Вместимость аудитории` INT (10) NOT NULL
, `Номер аудитории` CHAR (10) NOT NULL
, `Ид\КПР` INT NOT NULL
, CONSTRAINT `Ун\АУД` UNIQUE (`Ид\КПР`, `Номер аудитории`)
);
INSERT INTO `Аудитория\КРП` VALUES
(DEFAULT,27,"312Б",(SELECT `Ид` FROM `Корпус` WHERE `Номер корпуса` = 3)),
(DEFAULT,100,"117Б",(SELECT `Ид` FROM `Корпус` WHERE `Номер корпуса` = 6)),
(DEFAULT,15,"110Б",(SELECT `Ид` FROM `Корпус` WHERE `Номер корпуса` = 6));
SELECT "`Аудитория\КРП` Table Content:" FROM `Аудитория\КРП` WHERE 1=0;
SELECT * FROM `Аудитория\КРП`;
DROP TABLE IF EXISTS `Досдача`;
CREATE TABLE `Досдача`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер досдачи` CHAR (10) NOT NULL UNIQUE
, `Дата досдачи` DATE NOT NULL
, `Ид\СОТД` INT NOT NULL
, `Ид\ПРЕД` INT NOT NULL
);
INSERT INTO `Досдача` VALUES
(DEFAULT,"1-323о","2007.05.16",(SELECT `Ид` FROM `Сотрудник деканата:СОТ` WHERE `Ид\СОТ` = 1),(SELECT `Ид` FROM `Предмет\СПЕЦ` WHERE `Код предмета` = "ооп" AND `Ид\СПР` = 7)),
(DEFAULT,"1-322о","2007.05.16",(SELECT `Ид` FROM `Сотрудник деканата:СОТ` WHERE `Ид\СОТ` = 1),(SELECT `Ид` FROM `Предмет\СПЕЦ` WHERE `Код предмета` = "ооп" AND `Ид\СПР` = 7));
SELECT "`Досдача` Table Content:" FROM `Досдача` WHERE 1=0;
SELECT * FROM `Досдача`;
DROP TABLE IF EXISTS `Результат:ДСДЧ*СТУД`;
CREATE TABLE `Результат:ДСДЧ*СТУД`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\ДСДЧ` INT NOT NULL
, `Ид\СТУД` INT NOT NULL
, `Оценка пересдачи` INT (1) NOT NULL
, CONSTRAINT `Ун\РЕЗ` UNIQUE (`Ид\ДСДЧ`, `Ид\СТУД`)
);
INSERT INTO `Результат:ДСДЧ*СТУД` VALUES
(DEFAULT,(SELECT `Ид` FROM `Досдача` WHERE `Регномер досдачи` = "1-322о"),(SELECT `Ид` FROM `Студент%ПЕРС` WHERE `Код` = "001-С"),3),
(DEFAULT,(SELECT `Ид` FROM `Досдача` WHERE `Регномер досдачи` = "1-322о"),(SELECT `Ид` FROM `Студент%ПЕРС` WHERE `Код` = "002-С"),2);
SELECT "`Результат:ДСДЧ*СТУД` Table Content:" FROM `Результат:ДСДЧ*СТУД` WHERE 1=0;
SELECT * FROM `Результат:ДСДЧ*СТУД`;
DROP TABLE IF EXISTS `Продление:ППС*СТУД`;
CREATE TABLE `Продление:ППС*СТУД`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\ППС` INT NOT NULL
, `Ид\СТУД` INT NOT NULL
, `Сроки продления` DATE NOT NULL
, CONSTRAINT `Ун\ПРОД` UNIQUE (`Ид\ППС`, `Ид\СТУД`)
);
INSERT INTO `Продление:ППС*СТУД` VALUES
(DEFAULT,(SELECT `Ид` FROM `Приказ о продлении сессии` WHERE `Регномер приказа` = "077-СО"),(SELECT `Ид` FROM `Студент%ПЕРС` WHERE `Код` = "001-С"),"2007.05.16"),
(DEFAULT,(SELECT `Ид` FROM `Приказ о продлении сессии` WHERE `Регномер приказа` = "555-Б"),(SELECT `Ид` FROM `Студент%ПЕРС` WHERE `Код` = "002-С"),"2007.05.16");
SELECT "`Продление:ППС*СТУД` Table Content:" FROM `Продление:ППС*СТУД` WHERE 1=0;
SELECT * FROM `Продление:ППС*СТУД`;
DROP TABLE IF EXISTS `Преподаватель на сдаче:ПРЕП*ДСДЧ`;
CREATE TABLE `Преподаватель на сдаче:ПРЕП*ДСДЧ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\ДСДЧ` INT NOT NULL
, `Код\ПРЕ` CHAR (10) NOT NULL
, CONSTRAINT `Ун\ПРСД` UNIQUE (`Ид\ДСДЧ`, `Код\ПРЕ`)
);
INSERT INTO `Преподаватель на сдаче:ПРЕП*ДСДЧ` VALUES
(DEFAULT,(SELECT `Ид` FROM `Досдача` WHERE `Регномер досдачи` = "1-322о"),(SELECT `Ид` FROM `Преподаватель:СОТ` WHERE `Ид\СОТ` = 1)),
(DEFAULT,(SELECT `Ид` FROM `Досдача` WHERE `Регномер досдачи` = "1-322о"),(SELECT `Ид` FROM `Преподаватель:СОТ` WHERE `Ид\СОТ` = 2));
SELECT "`Преподаватель на сдаче:ПРЕП*ДСДЧ` Table Content:" FROM `Преподаватель на сдаче:ПРЕП*ДСДЧ` WHERE 1=0;
SELECT * FROM `Преподаватель на сдаче:ПРЕП*ДСДЧ`;
DROP TABLE IF EXISTS `Сдача группы`;
CREATE TABLE `Сдача группы`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер ведомости группы` CHAR (10) NOT NULL UNIQUE
, `Дата сдачи` DATE NOT NULL
, `Ид\ПРЕ` INT NOT NULL
, `Ид\ПРЕД` INT NOT NULL
, `Ид\СПР` INT NOT NULL
, `Ид\АУД` INT NOT NULL
, `Ид\ГР` INT NOT NULL
);
INSERT INTO `Сдача группы` VALUES
(DEFAULT,"323","2007.05.16",(SELECT `Ид` FROM `Преподаватель:СОТ` WHERE `Ид\СОТ` = 1),(SELECT `Ид` FROM `Предмет\СПЕЦ` WHERE `Код предмета` = "ооп" AND `Ид\СПР` = 7),(SELECT `Ид` FROM `Справка` WHERE `Слк` = "ВСДЧ" AND `Код` = "пис"),(SELECT `Ид` FROM `Аудитория\КРП` WHERE `Номер аудитории` = "117Б" AND `Ид\КПР` = 3),(SELECT `Ид` FROM `Группа\СПЕЦ` WHERE `Ид\СПР` = 8 AND `Номер группы студента` = 33));
SELECT "`Сдача группы` Table Content:" FROM `Сдача группы` WHERE 1=0;
SELECT * FROM `Сдача группы`;
DROP TABLE IF EXISTS `Результат:СДЧ*СТУД`;
CREATE TABLE `Результат:СДЧ*СТУД`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\СДЧ` CHAR (10) NOT NULL
, `Ид\СТУД` CHAR (10) NOT NULL
, `Оценка` INT (10) NOT NULL
, CONSTRAINT `Ун\РЕЗ` UNIQUE (`Ид\СДЧ`, `Ид\СТУД`)
);
INSERT INTO `Результат:СДЧ*СТУД` VALUES
(DEFAULT,(SELECT `Ид` FROM `Сдача группы` WHERE `Регномер ведомости группы` = "323"),(SELECT `Ид` FROM `Студент%ПЕРС` WHERE `Код` = "001-С"),5),
(DEFAULT,"323","002-С",5),
(DEFAULT,"323","099-С",4);
SELECT "`Результат:СДЧ*СТУД` Table Content:" FROM `Результат:СДЧ*СТУД` WHERE 1=0;
SELECT * FROM `Результат:СДЧ*СТУД`;
DROP VIEW IF EXISTS `вирт_Досдача`;
CREATE VIEW `вирт_Досдача` AS
SELECT
`ДСДЧ`.`Регномер досдачи` 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 `СПР2` ON `СПР2`.`Ид` = `СОТ`.`Ид\СПР`;
SELECT "`вирт_Досдача` Table Content:" FROM `вирт_Досдача` WHERE 1=0;
SELECT * FROM `вирт_Досдача`;
DROP PROCEDURE IF EXISTS `проц_Студент на досдаче`;
CREATE PROCEDURE `проц_Студент на досдаче`
(IN `@Ид\ДСДЧ` INT)
SELECT
`СТУД`.`Код` AS `Код студента`,
`СТУД`.`ФИО` AS `ФИО студента`,
`ГР`.`Номер группы студента` AS `Группа студента`,
`ГР`.`Курс группы` AS `Курс`,
`РЕЗ`.`Оценка пересдачи` AS `Оценка`
FROM `Результат:ДСДЧ*СТУД` AS `РЕЗ`
LEFT JOIN `Студент%ПЕРС` AS `СТУД` ON `СТУД`.`Ид` = `РЕЗ`.`Ид\СТУД`
LEFT JOIN `Группа\СПЕЦ` AS `ГР` ON `СТУД`.`Ид\ГР` = `ГР`.`Ид`
LEFT JOIN `Справка` AS `СПР` ON `ГР`.`Ид\СПР` = `СПР`.`Ид`
LEFT JOIN `Досдача` AS `ДСДЧ` ON `ДСДЧ`.`Ид` = `РЕЗ`.`Ид\ДСДЧ`
WHERE `РЕЗ`.`Ид` = `@Ид\ДСДЧ`;
CALL `проц_Студент на досдаче` (2);
DROP PROCEDURE IF EXISTS `проц_Преподаватель на сдаче`;
CREATE PROCEDURE `проц_Преподаватель на сдаче`
(IN `@Ид\ДСДЧ` INT)
SELECT
`СОТ`.`Код` AS `Код преподавателя`,
`СОТ`.`ФИО` AS `ФИО преподавателя`,
`СПР1`.`Код` AS `Код кафедры`,
`СПР1`.`Название` AS `Название кафедры`,
`СПР2`.`Код` AS `Код должности`,
`СПР2`.`Название` AS `Название должности`
FROM `Преподаватель на сдаче:ПРЕП*ДСДЧ` AS `ПРСД`
LEFT JOIN `Преподаватель:СОТ` AS `ПРЕ` ON `ПРСД`.`Код\ПРЕ` = `ПРЕ`.`Ид`
LEFT JOIN `Справка` AS `СПР1` ON `ПРЕ`.`Ид\СПР` = `СПР1`.`Ид`
LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `ПРЕ`.`Ид\СОТ` = `СОТ`.`Ид`
LEFT JOIN `Справка` AS `СПР2` ON `СОТ`.`Ид\СПР` = `СПР2`.`Ид`
WHERE `ПРСД`.`Ид` = `@Ид\ДСДЧ`;
CALL `проц_Преподаватель на сдаче` (1);
DROP VIEW IF EXISTS `вирт_Преподаватель%Досдача`;
CREATE VIEW `вирт_Преподаватель%Досдача` AS
SELECT
`ДСДЧ`.`Регномер досдачи` AS `Регистрационный номер досдачи`,
`ДСДЧ`.`Дата досдачи` AS `Дата проведения досдачи`,
`ПРЕД`.`Код предмета` AS `Код предмета на досдаче`,
`ПРЕД`.`Название предмета` AS `Название предмета на досдаче`,
`СОТ`.`Код` AS `Код сотрудника деканата`,
`СОТ`.`ФИО` AS `ФИО сотрудника деканата`,
`СОТ1`.`Код` AS `Код преподавателя`,
`СОТ1`.`ФИО` AS `ФИО преподавателя`,
`СПР1`.`Код` AS `Код кафедры`,
`СПР1`.`Название` AS `Название кафедры`,
`СПР2`.`Код` AS `Код должности`,
`СПР2`.`Название` 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 `ДСДЧ`.`Ид` = `ПРСД`.`Ид\ДСДЧ`
INNER JOIN `Преподаватель:СОТ` AS `ПРЕ` ON `ПРСД`.`Код\ПРЕ` = `ПРЕ`.`Ид`
INNER JOIN `Справка` AS `СПР1` ON `СПР1`.`Ид` = `ПРЕ`.`Ид\СПР`
INNER JOIN `Сотрудник%ПЕРС` AS `СОТ1` ON `СОТ1`.`Ид` = `ПРЕ`.`Ид\СОТ`
INNER JOIN `Справка` AS `СПР2` ON `СПР2`.`Ид` = `СОТ1`.`Ид\СПР`
;
SELECT "`вирт_Преподаватель%Досдача` Table Content:" FROM `вирт_Преподаватель%Досдача` WHERE 1=0;
SELECT * FROM `вирт_Преподаватель%Досдача`;
DROP VIEW IF EXISTS `вирт_Студент%Досдача`;
CREATE VIEW `вирт_Студент%Досдача` AS
SELECT
`ДСДЧ`.`Регномер досдачи` 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 `ДСДЧ`.`Ид` = `РЕЗ`.`Ид\ДСДЧ`
INNER JOIN `Студент%ПЕРС` AS `СТУД` ON `РЕЗ`.`Ид\СТУД` = `СТУД`.`Ид`
INNER JOIN `Группа\СПЕЦ` AS `ГР` ON `ГР`.`Ид` = `СТУД`.`Ид\ГР`
INNER JOIN `Справка` AS `СПР__` ON `СПР__`.`Ид` = `ГР`.`Ид\СПР`
;
SELECT "`вирт_Студент%Досдача` Table Content:" FROM `вирт_Студент%Досдача` WHERE 1=0;
SELECT * FROM `вирт_Студент%Досдача`;
DROP VIEW IF EXISTS `вирт_Досдача`;
CREATE VIEW `вирт_Досдача` AS
WITH
`Кол_преп` AS(
SELECT
`ДСДЧ`.`Регномер досдачи` AS `Регномер досдач`,
COUNT(*) AS `Регномер сдачи у преп`
FROM `Досдача` AS `ДСДЧ`
INNER JOIN `Преподаватель на сдаче:ПРЕП*ДСДЧ` AS `ПРСД` ON `ДСДЧ`.`Ид` = `ПРСД`.`Ид\ДСДЧ`
INNER JOIN `Преподаватель:СОТ` AS `ПРЕ` ON `ПРСД`.`Код\ПРЕ` = `ПРЕ`.`Ид`
INNER JOIN `Справка` AS `СПР1` ON `СПР1`.`Ид` = `ПРЕ`.`Ид\СПР`
INNER JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `СОТ`.`Ид` = `ПРЕ`.`Ид\СОТ`
INNER JOIN `Справка` AS `СПР2` ON `СПР2`.`Ид` = `СОТ`.`Ид\СПР`
GROUP BY `ДСДЧ`.`Регномер досдачи`
),
`Кол_студ` AS(
SELECT
`ДСДЧ`.`Регномер досдачи` AS `Регномер досдач`,
COUNT(*) AS `Регномер сдачи у студ`
FROM `Досдача` AS `ДСДЧ`
INNER JOIN `Результат:ДСДЧ*СТУД` AS `РЕЗ` ON `ДСДЧ`.`Ид` = `РЕЗ`.`Ид\ДСДЧ`
INNER JOIN `Студент%ПЕРС` AS `СТУД` ON `РЕЗ`.`Ид\СТУД` = `СТУД`.`Ид`
INNER JOIN `Группа\СПЕЦ` AS `ГР` ON `ГР`.`Ид` = `СТУД`.`Ид\ГР`
INNER JOIN `Справка` AS `СПР__` ON `СПР__`.`Ид` = `ГР`.`Ид\СПР`
GROUP BY `ДСДЧ`.`Регномер досдачи`
)
SELECT
`ДСДЧ`.`Ид` AS `Ид\ДСДЧ`,
`ДСДЧ`.`Регномер досдачи` AS `Регистрационный номер досдачи`,
`ДСДЧ`.`Дата досдачи` AS `Дата проведения сдачи`,
`ПРЕД`.`Код предмета` AS `Код предмета на досдаче`,
`ПРЕД`.`Название предмета` AS `Название предмета на досдаче`,
`СОТ`.`Код` AS `Код сотрудника деканата`,
`СОТ`.`ФИО` AS `ФИО сотрудника деканата`,
`Кол_студ`.`Регномер сдачи у студ` AS `Количество студентов на пересдаче`,
`Кол_преп`.`Регномер сдачи у преп` AS `Количество преподавателей на пересдаче`
FROM `Досдача` AS `ДСДЧ`
LEFT JOIN `Кол_студ` ON `ДСДЧ`.`Регномер досдачи` = `Кол_студ`.`Регномер досдач`
LEFT JOIN `Кол_преп` ON `ДСДЧ`.`Регномер досдачи` = `Кол_преп`.`Регномер досдач`
INNER JOIN `Предмет\СПЕЦ` AS `ПРЕД` ON `ДСДЧ`.`Ид\ПРЕД` = `ПРЕД`.`Ид`
INNER JOIN `Справка` AS `СПР` ON `ПРЕД`.`Ид\СПР` = `СПР`.`Ид`
INNER JOIN `Сотрудник деканата:СОТ` AS `СОТД` ON `ДСДЧ`.`Ид\СОТД` = `СОТД`.`Ид`
INNER JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `СОТД`.`Ид\СОТ` = `СОТ`.`Ид`
INNER JOIN `Справка` AS `СПР2` ON `СПР2`.`Ид` = `СОТ`.`Ид\СПР`;
SELECT "`Результат:СДЧ*СТУД` Table Content:" FROM `вирт_Преподаватель%Досдача` WHERE 1=0;
SELECT * FROM `вирт_Досдача`;