DROP TABLE IF EXISTS `Специальность`;
CREATE TABLE `Специальность`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Код` CHAR (4) NOT NULL,
`Название` VARCHAR (50) NOT NULL,
CONSTRAINT `УН\СПЦ` Unique (`Код`)
);
INSERT INTO `Специальность` SET `Код` = "1144", `Название` = "ведущий", `ИД` = NULL;
INSERT INTO `Специальность` SET `Код` = "5522", `Название` = "профессор", `ИД` = NULL;
INSERT INTO `Специальность` SET `Код` = "9654", `Название` = "доцент", `ИД` = NULL;
SELECT "`Специальность` Table Content:" FROM `Специальность` WHERE 1=0;
SELECT * FROM `Специальность`;
DROP TABLE IF EXISTS `Группа\СПЦ`;
CREATE TABLE `Группа\СПЦ`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ИД_СПЦ` INT NULL REFERENCES `Специальность` (`ИД`),
`Код` CHAR(4) NOT NULL,
`Год организации` CHAR(4) NOT NULL,
CONSTRAINT `УН\ГРУ` Unique (`ИД_СПЦ`, `Код`)
);
INSERT INTO `Группа\СПЦ` SET `ИД_СПЦ` = (SELECT `ИД` FROM `Специальность` WHERE `Код` = "1144"), `Код` = "1144", `Год организации` = "2004", `ИД` = NULL;
INSERT INTO `Группа\СПЦ` SET `ИД_СПЦ` = (SELECT `ИД` FROM `Специальность` WHERE `Код` = "5522"), `Код` = "5522", `Год организации` = "2011", `ИД` = NULL;
INSERT INTO `Группа\СПЦ` SET `ИД_СПЦ` = (SELECT `ИД` FROM `Специальность` WHERE `Код` = "9654"), `Код` = "9654", `Год организации` = "2015", `ИД` = NULL;
SELECT "`Группа\СПЦ` Table Content:" FROM `Группа\СПЦ` WHERE 1=0;
SELECT * FROM `Группа\СПЦ`;
DROP TABLE IF EXISTS `Персона`;
CREATE TABLE `Персона`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Код` CHAR(4) NOT NULL,
`ФИО` VARCHAR(50) NOT NULL,
CONSTRAINT `УН\ПЕР` Unique (`Код`)
);
INSERT INTO `Персона` SET `Код` = "9999", `ФИО` = "Иванов Иван Иванович", `ИД` = NULL;
INSERT INTO `Персона` SET `Код` = "6549", `ФИО` = "Петров Петр Петрович", `ИД` = NULL;
INSERT INTO `Персона` SET `Код` = "2525", `ФИО` = "Сергеев Сергей Сергеевич", `ИД` = NULL;
SELECT "`Персона` Table Content:" FROM `Персона` WHERE 1=0;
SELECT * FROM `Персона`;
DROP TABLE IF EXISTS `Студент: ПЕР`;
CREATE TABLE `Студент: ПЕР`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Код_ПЕР` CHAR(4) NOT NULL,
`ИД_ГРУ` INT NULL REFERENCES `Персона` (`ИД`),
CONSTRAINT `УН\СТУ` UNIQUE (`Код_ПЕР`)
);
INSERT INTO `Студент: ПЕР` SET `Код_ПЕР` = "9999", `ИД_ГРУ` = (SELECT `ИД` FROM `Группа\СПЦ` WHERE `ИД_СПЦ` = (SELECT `ИД` FROM `Специальность` WHERE `Код` = "1144")), `ИД` = NULL;
INSERT INTO `Студент: ПЕР` SET `Код_ПЕР` = "6549", `ИД_ГРУ` = (SELECT `ИД` FROM `Группа\СПЦ` WHERE `ИД_СПЦ` = (SELECT `ИД` FROM `Специальность` WHERE `Код` = "1144")), `ИД` = NULL;
INSERT INTO `Студент: ПЕР` SET `Код_ПЕР` = "2525", `ИД_ГРУ` = (SELECT `ИД` FROM `Группа\СПЦ` WHERE `ИД_СПЦ` = (SELECT `ИД` FROM `Специальность` WHERE `Код` = "1144")), `ИД` = NULL;
SELECT "`Студент: ПЕР` Table Content:" FROM `Студент: ПЕР` WHERE 1=0;
SELECT * FROM `Студент: ПЕР`;
DROP TABLE IF EXISTS `Справка`;
CREATE TABLE `Справка`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Слк` CHAR(2) NOT NULL,
`Код` CHAR(4) NOT NULL,
`Название` VARCHAR(50) NOT NULL,
CONSTRAINT `УН\СПР` UNIQUE (`Слк`, `Код`)
);
INSERT INTO `Справка` SET `Слк` = "ВМ", `Код` = "0000", `Название` = "Конференция", `ИД` = NULL;
INSERT INTO `Справка` SET `Слк` = "ВР", `Код` = "1111", `Название` = "Соревнование", `ИД` = NULL;
INSERT INTO `Справка` SET `Слк` = "ВП", `Код` = "2222", `Название` = "Съезд", `ИД` = NULL;
SELECT "`Справка` Table Content:" FROM `Справка` WHERE 1=0;
SELECT * FROM `Справка`;
DROP TABLE IF EXISTS `Место`;
CREATE TABLE `Место`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Код` CHAR(4) NOT NULL,
`Название` VARCHAR(50) NOT NULL,
CONSTRAINT `УН\МЕС` UNIQUE (`Код`)
);
INSERT INTO `Место` VALUES
(NULL, "9995", "УГАТУ"),
(NULL, "6547", "БГУ"),
(NULL, "2523", "БГМУ");
SELECT "`Место` Table Content:" FROM `Место` WHERE 1=0;
SELECT * FROM `Место`;
DROP TABLE IF EXISTS `Сотрудник: ПЕР`;
CREATE TABLE `Сотрудник: ПЕР`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ИД_ПЕР` INT NULL REFERENCES `Персона` (`ИД`),
`ИД_СПР` INT NULL REFERENCES `Справка` (`ИД`)
);
INSERT INTO `Сотрудник: ПЕР` SET `ИД_ПЕР` = (SELECT `ИД` FROM `Персона` WHERE `Код` = "9999"), `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `Слк` = "ВМ" AND `Код` = "0000"), `ИД` = NULL;
INSERT INTO `Сотрудник: ПЕР` SET `ИД_ПЕР` = (SELECT `ИД` FROM `Персона` WHERE `Код` = "6549"), `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `Слк` = "ВР" AND `Код` = "1111"), `ИД` = NULL;
INSERT INTO `Сотрудник: ПЕР` SET `ИД_ПЕР` = (SELECT `ИД` FROM `Персона` WHERE `Код` = "2525"), `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `Слк` = "ВП" AND `Код` = "2222"), `ИД` = NULL;
SELECT "`Сотрудник: ПЕР` Table Content:" FROM `Сотрудник: ПЕР` WHERE 1=0;
SELECT * FROM `Сотрудник: ПЕР`;
DROP TABLE IF EXISTS `Спонсор`;
CREATE TABLE `Спонсор`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Код` CHAR (4) NOT NULL,
`Название` VARCHAR (50) NOT NULL,
CONSTRAINT `УН\СПО` UNIQUE (`Код`)
);
INSERT INTO `Спонсор` VALUES
(NULL, "1189", "Город"),
(NULL, "5564", "ООО Башнефть"),
(NULL, "9689", "ООО Петон");
SELECT "`Спонсор` Table Content:" FROM `Спонсор` WHERE 1=0;
SELECT * FROM `Спонсор`;
DROP TABLE IF EXISTS `Мероприятие`;
CREATE TABLE `Мероприятие`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Регномер` CHAR (4) NOT NULL,
`ИД_МЕС` INT NULL REFERENCES `Место` (`ИД`),
`ИД_ФИН` INT NULL REFERENCES `Сотрудник: ПЕР` (`ИД`),
`ИД_БУХ` INT NULL REFERENCES `Сотрудник: ПЕР` (`ИД`),
`ИД_КОТ` INT NULL REFERENCES `Сотрудник: ПЕР` (`ИД`),
`Название` VARCHAR (50) NOT NULL,
`Дата проведения` DATE NOT NULL,
CONSTRAINT `УН\МЕР` UNIQUE (`Регномер`)
);
INSERT INTO `Мероприятие` SET `ИД_МЕС` = (SELECT `ИД` FROM `Место` WHERE `Код` = "9995"), `ИД_ФИН` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "1"), `ИД_БУХ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "2"), `ИД_КОТ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "3"), `Регномер` = "8989", `Название` = "Конференция 1", `Дата проведения` = "2023-12-01", `ИД` = NULL;
INSERT INTO `Мероприятие` SET `ИД_МЕС` = (SELECT `ИД` FROM `Место` WHERE `Код` = "6547"), `ИД_ФИН` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "1"), `ИД_БУХ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "2"), `ИД_КОТ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "3"), `Регномер` = "8990", `Название` = "Соревнование 1", `Дата проведения` = "2023-11-01", `ИД` = NULL;
INSERT INTO `Мероприятие` SET `ИД_МЕС` = (SELECT `ИД` FROM `Место` WHERE `Код` = "2523"), `ИД_ФИН` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "1"), `ИД_БУХ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "2"), `ИД_КОТ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "3"), `Регномер` = "8991", `Название` = "Съезд 1", `Дата проведения` = "2023-10-01", `ИД` = NULL;
SELECT "`Мероприятие` Table Content:" FROM `Мероприятие` WHERE 1=0;
SELECT * FROM `Мероприятие`;
DROP TABLE IF EXISTS `Поступление средств`;
CREATE TABLE `Поступление средств`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Регномер поступления` CHAR (4) NOT NULL,
`ИД_МЕР` INT NULL REFERENCES `Мероприятие` (`ИД`),
`ИД_СПР` INT NULL REFERENCES `Справка` (`ИД`),
`ИД_СПО` INT NULL REFERENCES `Спонсор` (`ИД`),
`Дата поступления` DATE NOT NULL,
`Сумма поступления` VARCHAR(10) NOT NULL,
`Условия спонсора` VARCHAR (50) NULL,
CONSTRAINT `УН\ПСС` UNIQUE (`Регномер поступления`)
);
INSERT INTO `Поступление средств` SET `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8989"), `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `СЛК` = "ВМ" AND `Код` = "0000"), `ИД_СПО` = (SELECT `ИД` FROM `Спонсор` WHERE `Код` = "1189"), `Регномер поступления` = "2323", `Дата поступления` = "2023-05-12", `Сумма поступления` = "500000.00", `Условия спонсора` = NULL, `ИД` = NULL;
INSERT INTO `Поступление средств` SET `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8990"), `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `СЛК` = "ВР" AND `Код` = "1111"), `ИД_СПО` = (SELECT `ИД` FROM `Спонсор` WHERE `Код` = "5564"), `Регномер поступления` = "2324", `Дата поступления` = "2023-05-13", `Сумма поступления` = "700000.00", `Условия спонсора` = "на аренду", `ИД` = NULL;
INSERT INTO `Поступление средств` SET `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8991"), `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `СЛК` = "ВП" AND `Код` = "2222"), `ИД_СПО` = (SELECT `ИД` FROM `Спонсор` WHERE `Код` = "9689"), `Регномер поступления` = "2325", `Дата поступления` = "2023-05-19", `Сумма поступления` = "100000.00", `Условия спонсора` = "на еду", `ИД` = NULL;
SELECT "`Поступление средств` Table Content:" FROM `Поступление средств` WHERE 1=0;
SELECT * FROM `Поступление средств`;
DROP TABLE IF EXISTS `Расход на мероприятие`;
CREATE TABLE `Расход на мероприятие`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Регномер расхода` CHAR (4) NOT NULL,
`ИД_СПР` INT NULL REFERENCES `Справка` (`ИД`),
`ИД_МЕР` INT NULL REFERENCES `Мероприятие` (`ИД`),
`Дата расхода` DATE NOT NULL,
`Сумма расхода` VARCHAR(10) NOT NULL,
CONSTRAINT `УН\РСМ` UNIQUE (`Регномер расхода`)
);
INSERT INTO `Расход на мероприятие` SET `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `СЛК` = "ВМ" AND `Код` = "0000"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8989"), `Регномер расхода` = "3333", `Дата расхода` = "2023-05-13", `Сумма расхода` = "400000.00", `ИД` = NULL;
INSERT INTO `Расход на мероприятие` SET `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `СЛК` = "ВР" AND `Код` = "1111"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8990"), `Регномер расхода` = "4444", `Дата расхода` = "2023-05-14", `Сумма расхода` = "600000.00", `ИД` = NULL;
INSERT INTO `Расход на мероприятие` SET `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `СЛК` = "ВП" AND `Код` = "2222"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8991"), `Регномер расхода` = "5555", `Дата расхода` = "2023-05-15", `Сумма расхода` = "90000.00", `ИД` = NULL;
SELECT "`Расход не мероприятие` Table Content:" FROM `Расход на мероприятие` WHERE 1=0;
SELECT * FROM `Расход на мероприятие`;
DROP TABLE IF EXISTS `Заявка: МЕР*ВВС`;
CREATE TABLE `Заявка: МЕР*ВВС`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Регномер заявки` CHAR (4) NOT NULL,
`ИД_СПР` INT NULL REFERENCES `Справка` (`ИД`),
`ИД_МЕР` INT NULL REFERENCES `Мероприятие` (`ИД`),
`Название` VARCHAR (50) NOT NULL,
`Дата заявки` DATE NOT NULL,
CONSTRAINT `УН\ЗВК` UNIQUE (`Регномер заявки`, `ИД_СПР`)
);
INSERT INTO `Заявка: МЕР*ВВС` SET `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `Слк` = "ВМ" AND `Код` = "0000"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8989"), `Регномер заявки` = "11АА", `Название` = "Доклад", `Дата заявки` = "2023-12-05", `ИД` = NULL;
INSERT INTO `Заявка: МЕР*ВВС` SET `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `Слк` = "ВР" AND `Код` = "1111"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8990"), `Регномер заявки` = "11ББ", `Название` = "Реферат", `Дата заявки` = "2023-11-25", `ИД` = NULL;
INSERT INTO `Заявка: МЕР*ВВС` SET `ИД_СПР` = (SELECT `ИД` FROM `Справка` WHERE `Слк` = "ВП" AND `Код` = "2222"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8991"), `Регномер заявки` = "11ВВ", `Название` = "Отчет", `Дата заявки` = "2023-10-20", `ИД` = NULL;
SELECT "`Заявка: МЕР*ВВС` Table Content:" FROM `Заявка: МЕР*ВВС` WHERE 1=0;
SELECT * FROM `Заявка: МЕР*ВВС`;
DROP TABLE IF EXISTS `Участие: ЗВК*СТУ`;
CREATE TABLE `Участие: ЗВК*СТУ`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ИД_ЗВК` INT NULL REFERENCES `Заявка: МЕР*ВВС` (`ИД`),
`ИД_СТУ` INT NULL REFERENCES `Студент: ПЕР` (`ИД`),
`Роль` VARCHAR (50) NULL
);
INSERT INTO `Участие: ЗВК*СТУ` SET `ИД_ЗВК` = (SELECT `ИД` FROM `Заявка: МЕР*ВВС` WHERE `Регномер заявки` = "11АА"), `ИД_СТУ` = (SELECT `ИД` FROM `Студент: ПЕР` WHERE `Код_ПЕР` = "9999"), `Роль` = "Докладчик", `ИД` = NULL;
INSERT INTO `Участие: ЗВК*СТУ` SET `ИД_ЗВК` = (SELECT `ИД` FROM `Заявка: МЕР*ВВС` WHERE `Регномер заявки` = "11ББ"), `ИД_СТУ` = (SELECT `ИД` FROM `Студент: ПЕР` WHERE `Код_ПЕР` = "6549"), `Роль` = "Слушащий", `ИД` = NULL;
INSERT INTO `Участие: ЗВК*СТУ` SET `ИД_ЗВК` = (SELECT `ИД` FROM `Заявка: МЕР*ВВС` WHERE `Регномер заявки` = "11ВВ"), `ИД_СТУ` = (SELECT `ИД` FROM `Студент: ПЕР` WHERE `Код_ПЕР` = "2525"), `Роль` = "Эксперт", `ИД` = NULL;
SELECT "`Участие: ЗВК*СТУ` Table Content:" FROM `Участие: ЗВК*СТУ` WHERE 1=0;
SELECT * FROM `Участие: ЗВК*СТУ`;
DROP TABLE IF EXISTS `Награда`;
CREATE TABLE `Награда`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Код` CHAR (4) NOT NULL,
`Название` VARCHAR (50) NOT NULL,
CONSTRAINT `УН\НАГ` UNIQUE (`Код`)
);
INSERT INTO `Награда` VALUES
(NULL, "1145", "Диплом"),
(NULL, "5523", "Грамота"),
(NULL, "9655", "Сертификат");
SELECT "`Награда` Table Content:" FROM `Награда` WHERE 1=0;
SELECT * FROM `Награда`;
DROP TABLE IF EXISTS `Выступление`;
CREATE TABLE `Выступление`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Регномер заявки` CHAR (4) NOT NULL,
`ИД_МЕР` INT NULL REFERENCES `Мероприятие` (`ИД`),
`ИД_НАГ` INT NULL REFERENCES `Награда` (`ИД`),
`Название` VARCHAR (50) NOT NULL,
CONSTRAINT `УН\ВЫС` UNIQUE (`Регномер заявки`)
);
INSERT INTO `Выступление` SET `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8989"), `ИД_НАГ` = (SELECT `ИД` FROM `Награда` WHERE `Код` = "1145"), `Регномер заявки` = "8888", `Название` = "Выступление 1", `ИД` = NULL;
INSERT INTO `Выступление` SET `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8990"), `ИД_НАГ` = (SELECT `ИД` FROM `Награда` WHERE `Код` = "5523"), `Регномер заявки` = "7777", `Название` = "Выступление 2", `ИД` = NULL;
INSERT INTO `Выступление` SET `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8991"), `ИД_НАГ` = (SELECT `ИД` FROM `Награда` WHERE `Код` = "9655"), `Регномер заявки` = "6666", `Название` = "Выступление 3", `ИД` = NULL;
SELECT "`Выступление` Table Content:" FROM `Выступление` WHERE 1=0;
SELECT * FROM `Выступление`;
DROP TABLE IF EXISTS `Номинация`;
CREATE TABLE `Номинация`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Код` CHAR (4) NOT NULL,
`Название` VARCHAR (50) NOT NULL,
CONSTRAINT `УН\НОМ` UNIQUE (`Код`)
);
INSERT INTO `Номинация` VALUES
(NULL, "1147", "лучшая работа"),
(NULL, "5525", "лучший доклад"),
(NULL, "9657", "лучшая презентация");
SELECT "`Номинация` Table Content:" FROM `Номинация` WHERE 1=0;
SELECT * FROM `Номинация`;
DROP TABLE IF EXISTS `Оценивание: ВЫС*НОМ`;
CREATE TABLE `Оценивание: ВЫС*НОМ`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ИД_ВЫС` INT NULL REFERENCES `Выступление` (`ИД`),
`ИД_НОМ` INT NULL REFERENCES `Номинация` (`ИД`),
`Балл по номинации` CHAR (3) NOT NULL
);
INSERT INTO `Оценивание: ВЫС*НОМ` SET `ИД_ВЫС` = (SELECT `ИД` FROM `Выступление` WHERE `Регномер заявки` = "8888"), `ИД_НОМ` = (SELECT `ИД` FROM `Номинация` WHERE `Код` = "1147"), `Балл по номинации` = "100", `ИД` = NULL;
INSERT INTO `Оценивание: ВЫС*НОМ` SET `ИД_ВЫС` = (SELECT `ИД` FROM `Выступление` WHERE `Регномер заявки` = "7777"), `ИД_НОМ` = (SELECT `ИД` FROM `Номинация` WHERE `Код` = "5525"), `Балл по номинации` = "80", `ИД` = NULL;
INSERT INTO `Оценивание: ВЫС*НОМ` SET `ИД_ВЫС` = (SELECT `ИД` FROM `Выступление` WHERE `Регномер заявки` = "6666"), `ИД_НОМ` = (SELECT `ИД` FROM `Номинация` WHERE `Код` = "9657"), `Балл по номинации` = "75", `ИД` = NULL;
SELECT "`Оценивание: ВЫС*НОМ` Table Content:" FROM `Оценивание: ВЫС*НОМ` WHERE 1=0;
SELECT * FROM `Оценивание: ВЫС*НОМ`;
DROP TABLE IF EXISTS `Ведение: МЕР*ОРГ`;
CREATE TABLE `Ведение: МЕР*ОРГ`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ИД_ОРГ` INT NULL REFERENCES `Сотрудник: ПЕР` (`ИД`),
`ИД_МЕР` INT NULL REFERENCES `Мероприятие` (`ИД`),
`Роль` VARCHAR (50) NOT NULL
);
INSERT INTO `Ведение: МЕР*ОРГ` SET `ИД_ОРГ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "1"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8989"), `Роль` = "Микрофон", `ИД` = NULL;
INSERT INTO `Ведение: МЕР*ОРГ` SET `ИД_ОРГ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "2"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8990"), `Роль` = "Еда", `ИД` = NULL;
INSERT INTO `Ведение: МЕР*ОРГ` SET `ИД_ОРГ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "3"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8991"), `Роль` = "Вода", `ИД` = NULL;
SELECT "`Ведение: МЕР*ОРГ` Table Content:" FROM `Ведение: МЕР*ОРГ` WHERE 1=0;
SELECT * FROM `Ведение: МЕР*ОРГ`;
DROP TABLE IF EXISTS `Экспертиза: МЕР*ОРГ`;
CREATE TABLE `Экспертиза: МЕР*ОРГ`
( `ИД` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`ИД_ОРГ` INT NULL REFERENCES `Сотрудник: ПЕР` (`ИД`),
`ИД_МЕР` INT NULL REFERENCES `Мероприятие` (`ИД`),
`Роль` VARCHAR (50) NOT NULL
);
INSERT INTO `Экспертиза: МЕР*ОРГ` SET `ИД_ОРГ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "1"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8989"), `Роль` = "Выступление", `ИД` = NULL;
INSERT INTO `Экспертиза: МЕР*ОРГ` SET `ИД_ОРГ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "2"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8990"), `Роль` = "Организация", `ИД` = NULL;
INSERT INTO `Экспертиза: МЕР*ОРГ` SET `ИД_ОРГ` = (SELECT `ИД` FROM `Сотрудник: ПЕР` WHERE `ИД_ПЕР` = "3"), `ИД_МЕР` = (SELECT `ИД` FROM `Мероприятие` WHERE `Регномер` = "8991"), `Роль` = "Концерт", `ИД` = NULL;
SELECT "`Экспертиза: МЕР*ОРГ` Table Content:" FROM `Экспертиза: МЕР*ОРГ` WHERE 1=0;
SELECT * FROM `Экспертиза: МЕР*ОРГ`;
-- Функция 1: Финансовое обеспечение мероприятий
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 `СОТ`.`ИД_СПР` = `СПР`.`ИД`;
SELECT * FROM `вирт_Мероприятие`;
DROP PROCEDURE IF EXISTS `проц_Поступление_средств`;
CREATE PROCEDURE `проц_Поступление_средств`()
BEGIN
SELECT
`ПСС`.`Сумма поступления` AS `Сумма поступления`,
`ПСС`.`Дата поступления` AS `Дата поступления`,
`ПСС`.`Условия спонсора` AS `Условие спонсора`,
`СПО`.`Код` AS `Код спонсора поступления`,
`СПО`.`Название` AS `Название спонсора поступления`,
`СПР`.`Код` AS `Код вида поступления`,
`СПР`.`Название` AS `Название вида поступления`
FROM `Поступление средств` AS `ПСС`
INNER JOIN `Спонсор` AS `СПО`
ON `ПСС`.`ИД_СПО` = `СПО`.`ИД`
INNER JOIN `Справка` AS `СПР`
ON `ПСС`.`ИД_СПР` = `СПР`.`ИД`;
END;
CALL `проц_Поступление_средств`();
DROP PROCEDURE IF EXISTS `проц_Расход_на_мероприятие`;
CREATE PROCEDURE `проц_Расход_на_мероприятие`()
BEGIN
SELECT
`РСМ`.`Регномер расхода` 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 `СОТ`.`ИД_СПР` = `СПР_ДОЛ`.`ИД`;
END;
CALL `проц_Расход_на_мероприятие`();
-- Функция 2: Проведение мероприятий
DROP VIEW IF EXISTS `вирт_Мероприятие%Поступление_средств`;
CREATE VIEW `вирт_Мероприятие%Поступление_средств` AS
SELECT
`МЕР`.`Регномер` AS `Регномер мероприятия`,
`МЕР`.`Дата проведения` AS `Дата проведения`,
`ПЕР`.`Код` AS `Код Бухгалтера`,
`ПЕР`.`ФИО` AS `ФИО бухгалтера`,
`СПР`.`Код` AS `Код должности`,
`СПР`.`Название` AS `Название должности`
FROM `Мероприятие` AS `МЕР`
LEFT JOIN `Сотрудник: ПЕР` AS `СОТ`
ON `МЕР`.`ИД_БУХ` = `СОТ`.`ИД`
LEFT JOIN `Персона` AS `ПЕР`
ON `СОТ`.`ИД_ПЕР` = `ПЕР`.`ИД`
LEFT JOIN `Справка` AS `СПР`
ON `СОТ`.`ИД_СПР` = `СПР`.`ИД`;
SELECT * FROM `вирт_Мероприятие%Поступление_средств`;
-- Функция 3: Сумма поступлений
DROP VIEW IF EXISTS `вирт_Мероприятие_Поступление`;
CREATE VIEW `вирт_Мероприятие_Поступление` AS
SELECT
`ПСС`.`Регномер поступления` AS `Регномер поступления`,
`ПСС`.`Сумма поступления` AS `Сумма поступления`,
`ПСС`.`Дата поступления` AS `Дата поступления`,
`ПСС`.`Условия спонсора` AS `Условие спонсора`,
`СПО`.`Код` AS `Код спонсора поступления`,
`СПО`.`Название` AS `Название спонсора поступления`,
`СПРМ`.`Код` AS `Код вида поступления`,
`СПРМ`.`Название` AS `Название вида поступления`,
COUNT(*) AS `Сумма поступлений`
FROM `Поступление средств` AS `ПСС`
LEFT JOIN `Спонсор` AS `СПО`
ON `ПСС`.`Ид_СПО` = `СПО`.`Ид`
INNER JOIN `Справка` AS `СПРМ`
ON `СПО`.`Ид_СПР` = `СПРМ`.`Ид` GROUP BY `ПСС`.`Ид`
;
SELECT * FROM `вирт_Мероприятие_Поступление`;
DROP PROCEDURE IF EXISTS `Финансовое_обеспечение_мероприятий`;
CREATE PROCEDURE `Финансовое_обеспечение_мероприятий`(IN мероприятие_id INT)
BEGIN
SELECT
m.`Регномер` AS 'Регистрационный номер мероприятия',
m.`Название` AS 'Название мероприятия',
SUM(CAST(REPLACE(ps.`Сумма поступления`, ',', '.') AS DECIMAL(10,2))) AS 'Общая сумма поступлений',
SUM(CAST(REPLACE(r.`Сумма расхода`, ',', '.') AS DECIMAL(10,2))) AS 'Общая сумма расходов',
(SUM(CAST(REPLACE(ps.`Сумма поступления`, ',', '.') AS DECIMAL(10,2)) -
(SUM(CAST(REPLACE(r.`Сумма расхода`, ',', '.') AS DECIMAL(10,2))) AS 'Остаток средств'
FROM
`Мероприятие` m
LEFT JOIN
`Поступление средств` ps ON m.`ИД` = ps.`ИД_МЕР`
LEFT JOIN
`Расход на мероприятие` r ON m.`ИД` = r.`ИД_МЕР`
WHERE
m.`ИД` = мероприятие_id
GROUP BY
m.`ИД`, m.`Регномер`, m.`Название`;
END;
-- Пример вызова
CALL `Финансовое_обеспечение_мероприятий`(1);
DROP PROCEDURE IF EXISTS `Проведение_мероприятий`;
CREATE PROCEDURE `Проведение_мероприятий`(IN дата_начала DATE, IN дата_окончания DATE)
BEGIN
SELECT
m.`ИД`,
m.`Регномер`,
m.`Название`,
m.`Дата проведения`,
me.`Название` AS 'Место проведения',
COUNT(DISTINCT u.`ИД_СТУ`) AS 'Количество участников',
COUNT(DISTINCT v.`ИД`) AS 'Количество выступлений'
FROM
`Мероприятие` m
JOIN
`Место` me ON m.`ИД_МЕС` = me.`ИД`
LEFT JOIN
`Заявка: МЕР*ВВС` z ON m.`ИД` = z.`ИД_МЕР`
LEFT JOIN
`Участие: ЗВК*СТУ` u ON z.`ИД` = u.`ИД_ЗВК`
LEFT JOIN
`Выступление` v ON m.`ИД` = v.`ИД_МЕР`
WHERE
m.`Дата проведения` BETWEEN дата_начала AND дата_окончания
GROUP BY
m.`ИД`, m.`Регномер`, m.`Название`, m.`Дата проведения`, me.`Название`
ORDER BY
m.`Дата проведения`;
END;
-- Пример вызова
CALL `Проведение_мероприятий`('2023-10-01', '2023-12-31');
DROP FUNCTION IF EXISTS `Сумма_поступлений`;
CREATE FUNCTION `Сумма_поступлений`(мероприятие_id INT)
RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
DECLARE total DECIMAL(10,2);
SELECT SUM(CAST(REPLACE(`Сумма поступления`, ',', '.') AS DECIMAL(10,2)) INTO total
FROM `Поступление средств`
WHERE `ИД_МЕР` = мероприятие_id;
IF total IS NULL THEN
RETURN 0.00;
ELSE
RETURN total;
END IF;
END;
-- Пример вызова
SELECT `Сумма_поступлений`(1) AS 'Общая сумма поступлений';