SQLize
Online
/
PHPize Online
/
SQLtest Online
A
A
A
Share
Donate
Blog
Popular
Donate
A
A
A
Share
Blog
Popular
SQLize.online is a free online SQL environment for quickly running, experimenting with and sharing code.
You can run your SQL code on top of the most popular RDBMS including MySQL, MariaDB, SQLite, PostgreSQL, Oracle and Microsoft SQL Server.
SQL code:
Upload
Copy
Format
Clear
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 KEY (`Слк`, `Код`)); INSERT INTO `Справка+` VALUES (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, `Код` CHAR (10) NOT NULL UNIQUE KEY , `Паспорт` CHAR (10) NOT NULL UNIQUE , `ФИО` VARCHAR (50) NOT NULL , `Ид_ДОЛ\СОТ^СПР` INT NOT NULL REFERENCES `Справка+` (`Ид`) , `Ид_ДОП\СОТ^СПР` INT NOT NULL REFERENCES `Справка+` (`Ид`)); INSERT INTO `Сотрудник%ПЕРС` SET `Ид` = DEFAULT, `Код` = "001-РУК", `Паспорт` = "547489", `ФИО` = "Котов К. В.", `Ид_ДОЛ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "РУК"), `Ид_ДОП\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОП" AND `Код` = "ДОП"); INSERT INTO `Сотрудник%ПЕРС` SET `Ид` = DEFAULT, `Код` = "001-СПЕ", `Паспорт` = "694930", `ФИО` = "Третьяков А. К.", `Ид_ДОЛ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "СПЕ"), `Ид_ДОП\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОП" AND `Код` = "ДОП"); INSERT INTO `Сотрудник%ПЕРС` SET `Ид` = DEFAULT, `Код` = "002-СПЕ", `Паспорт` = "876543", `ФИО` = "Демьянова В. В.", `Ид_ДОЛ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "СПЕ"), `Ид_ДОП\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОП" AND `Код` = "ДОП"); INSERT INTO `Сотрудник%ПЕРС` SET `Ид` = DEFAULT, `Код` = "003-СПЕ", `Паспорт` = "234589", `ФИО` = "Никитина Н. М.", `Ид_ДОЛ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОЛ" AND `Код` = "СПЕ"), `Ид_ДОП\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ДОП" AND `Код` = "ДОП"); SELECT "`Сотрудник%ПЕРС` Table Content:" FROM `Сотрудник%ПЕРС` WHERE 1 = 0; SELECT * FROM `Сотрудник%ПЕРС`; DROP TABLE IF EXISTS `Руководитель: СОТ`; CREATE TABLE `Руководитель: СОТ` (`Ид\РУК^СОТ` INT NOT NULL PRIMARY KEY REFERENCES `Сотрудник%ПЕРС` (`Ид`)); INSERT INTO `Руководитель: СОТ` SET `Ид\РУК^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-РУК"); SELECT "`Руководитель: СОТ` Table Content:" FROM `Руководитель: СОТ` WHERE 1 = 0; SELECT * FROM `Руководитель: СОТ`; DROP TABLE IF EXISTS `Специалист: СОТ`; CREATE TABLE `Специалист: СОТ` (`Ид\СПЕ^СОТ` INT NOT NULL PRIMARY KEY REFERENCES `Сотрудник%ПЕРС` (`Ид`)); INSERT INTO `Специалист: СОТ` SET `Ид\СПЕ^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-СПЕ"); INSERT INTO `Специалист: СОТ` SET `Ид\СПЕ^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "002-СПЕ"); INSERT INTO `Специалист: СОТ` SET `Ид\СПЕ^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "003-СПЕ"); 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 KEY , `Паспорт` CHAR (10) NOT NULL UNIQUE , `ФИО` VARCHAR (50) NOT NULL); INSERT INTO `Представитель%ПЕРС` VALUES (DEFAULT, "001-ПРЕ", "866790", "Самойлова О. В."), (DEFAULT, "002-ПРЕ", "123467", "Ковалев А. К."); 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 KEY , `Дата` CHAR (10) NOT NULL); INSERT INTO `Разрешение` VALUES (DEFAULT, "123-1", "12.09.2023"), (DEFAULT, "123-2", "22.12.2023"); 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 KEY , `Дата` CHAR (10) NOT NULL , `Ид\ПРИК^РУК` INT NOT NULL REFERENCES `Руководитель: СОТ` (`Ид\РУК^СОТ`)); INSERT INTO `Приказ` SET `Ид` = DEFAULT, `Регномер` = "143-1", `Дата` = "15.09.2023", `Ид\ПРИК^РУК` = (SELECT * FROM `Руководитель: СОТ` WHERE 1); INSERT INTO `Приказ` SET `Ид` = DEFAULT, `Регномер` = "112-2", `Дата` = "26.12.2023", `Ид\ПРИК^РУК` = (SELECT * FROM `Руководитель: СОТ` WHERE 1); 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 (150) NOT NULL , `Основание для снятия` CHAR (150) NULL , CONSTRAINT `УН\ДОП` UNIQUE KEY (`НПП`, `Ид\ДОП^СОТ`) , `Ид\ДОП^СОТ` INT NOT NULL REFERENCES `Сотрудник%ПЕРС` (`Ид`), `Ид\ДОП^ПРИК` INT NOT NULL REFERENCES `Приказ` (`Ид`), `Ид\ДОП^СПР` INT NOT NULL REFERENCES `Справка+` (`Ид`), `Ид\ДОП^СПЕЦ` INT NOT NULL REFERENCES `Специалист: СОТ` (`Ид\СПЕ^СОТ`), `Ид\ДОП^РАЗ` INT NOT NULL REFERENCES `Разрешение` (`Ид`)); INSERT INTO `Допуск сотрудника\СОТ` SET `Ид` = DEFAULT, `НПП` = "1", `Ид\ДОП^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-РУК"), `Основание для присвоения` = "Направление в другие организации для выполнения работ с использованием сведений, составляющих тайну", `Основание для снятия` = NULL, `Ид\ДОП^ПРИК` = (SELECT `Ид` FROM `Приказ` WHERE `Регномер` = "143-1"), `Ид\ДОП^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ФОР" AND `Код` = "ФОР"), `Ид\ДОП^СПЕЦ` = (SELECT `Ид\СПЕ^СОТ` FROM `Специалист: СОТ` WHERE `Ид\СПЕ^СОТ` = 2), `Ид\ДОП^РАЗ` = (SELECT `Ид` FROM `Разрешение` WHERE `Регномер` = "123-1"); INSERT INTO `Допуск сотрудника\СОТ` SET `Ид` = DEFAULT, `НПП` = "2", `Ид\ДОП^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-РУК"), `Основание для присвоения` = "Направление в другие организации для выполнения работ с использованием сведений, составляющих тайну", `Основание для снятия` = "Истечение срока действия", `Ид\ДОП^ПРИК` = (SELECT `Ид` FROM `Приказ` WHERE `Регномер` = "112-2"), `Ид\ДОП^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ФОР" AND `Код` = "ФОР"), `Ид\ДОП^СПЕЦ` = (SELECT `Ид\СПЕ^СОТ` FROM `Специалист: СОТ` WHERE `Ид\СПЕ^СОТ` = 2), `Ид\ДОП^РАЗ` = (SELECT `Ид` FROM `Разрешение` WHERE `Регномер` = "123-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 KEY , `Дата` CHAR (10) NOT NULL , `Ид\ЗАПР^СПР` INT NOT NULL REFERENCES `Справка+` (`Ид`)); INSERT INTO `Запрос на получение допуска` SET `Ид` = DEFAULT, `Регномер` = "234-1", `Дата` = "12.09.2023", `Ид\ЗАПР^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ФОР" AND `Код` = "ФОР"); INSERT INTO `Запрос на получение допуска` SET `Ид` = DEFAULT, `Регномер` = "235-2", `Дата` = "13.12.2023", `Ид\ЗАПР^СПР` = (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 KEY, `Название` CHAR (10) NOT NULL, `Код грифа секретности` CHAR (10) NOT NULL, `Ид\ДОК^СПР` INT NOT NULL REFERENCES `Справка+` (`Ид`), `Ид\ДОК^СПЕЦ` INT NOT NULL REFERENCES `Специалист: СОТ` (`Ид\СПЕ^СОТ`)); INSERT INTO `Документ` SET `Ид` = DEFAULT, `Регномер` = "15-12", `Название` = "Документ 1", `Код грифа секретности` = "001", `Ид\ДОК^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДО" AND `Код` = "ВИДО"), `Ид\ДОК^СПЕЦ` = (SELECT `Ид\СПЕ^СОТ` FROM `Специалист: СОТ` WHERE `Ид\СПЕ^СОТ` = 3); INSERT INTO `Документ` SET `Ид` = DEFAULT, `Регномер` = "15-13", `Название` = "Документ 2", `Код грифа секретности` = "002", `Ид\ДОК^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДО" AND `Код` = "ВИДО"), `Ид\ДОК^СПЕЦ` = (SELECT `Ид\СПЕ^СОТ` FROM `Специалист: СОТ` WHERE `Ид\СПЕ^СОТ` = 3); SELECT "`Документ` Table Content:" FROM `Документ` WHERE 1 = 0; SELECT * FROM `Документ`; DROP TABLE IF EXISTS `Сотрудник в запросе: СОТ*ЗАПР`; CREATE TABLE `Сотрудник в запросе: СОТ*ЗАПР` (`НПП` CHAR (10) NOT NULL , `Основание для присвоения` CHAR (150) NOT NULL , CONSTRAINT `ПК\СОТЗ` PRIMARY KEY (`Ид\СОТЗ^СОТ`, `Ид\СОТЗ^ЗАПР`) , `Ид\СОТЗ^СОТ` INT NOT NULL REFERENCES `Сотрудник%ПЕРС` (`Ид`), `Ид\СОТЗ^ЗАПР` INT NOT NULL REFERENCES `Запрос на получение допуска` (`Ид`), `Ид\СОТЗ^РАЗ` INT NOT NULL REFERENCES `Разрешение` (`Ид`), `Ид\СОТЗ^СПЕЦ` INT NOT NULL REFERENCES `Специалист: СОТ` (`Ид\СПЕ^СОТ`), `Ид\СОТЗ^ПРЕД` INT NOT NULL REFERENCES `Представитель%ПЕРС` (`Ид`)); INSERT INTO `Сотрудник в запросе: СОТ*ЗАПР` SET `НПП` = "1", `Основание для присвоения` = "Основание", `Ид\СОТЗ^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "001-РУК"), `Ид\СОТЗ^ЗАПР` = (SELECT `Ид` FROM `Запрос на получение допуска` WHERE `Регномер` = "235-2"), `Ид\СОТЗ^РАЗ` = (SELECT `Ид` FROM `Разрешение` WHERE `Регномер` = "123-1"), `Ид\СОТЗ^СПЕЦ` = (SELECT `Ид\СПЕ^СОТ` FROM `Специалист: СОТ` WHERE `Ид\СПЕ^СОТ` = 2), `Ид\СОТЗ^ПРЕД` = (SELECT `Ид` FROM `Представитель%ПЕРС` WHERE `Код` = "001-ПРЕ"); 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 KEY, `Дата` CHAR (10) NOT NULL, `Ид\ДОКД^СПР` INT NOT NULL REFERENCES `Справка+` (`Ид`), `Ид\ДОКД^СОТЗ` INT NOT NULL REFERENCES `Сотрудник в запросе: СОТ*ЗАПР` (`Ид\СОТЗ^СОТ`), `Ид\ДОКД^ДОП` INT NOT NULL REFERENCES `Допуск сотрудника\СОТ` (`Ид`)); INSERT INTO `Документ к допуску` SET `Ид` = DEFAULT, `Рег. номер` = "123", `Дата` = "23.09.2023", `Ид\ДОКД^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк` = "ВИДО" AND `Код` = "ВИДО"), `Ид\ДОКД^СОТЗ` = (SELECT `Ид\СОТЗ^СОТ` FROM `Сотрудник в запросе: СОТ*ЗАПР` WHERE `Ид\СОТЗ^СОТ` = 1), `Ид\ДОКД^ДОП` = (SELECT `Ид` FROM `Допуск сотрудника\СОТ` WHERE `Ид` = 1); 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 KEY, `Дата/время составления отчета` CHAR (100) NOT NULL, `Ид\СОТД^СОТ` INT NOT NULL REFERENCES `Сотрудник%ПЕРС` (`Ид`), `Ид\СОТД^РУК` INT NOT NULL REFERENCES `Руководитель: СОТ` (`Ид\РУК^СОТ`)); INSERT INTO `Сотрудник с допуском` SET `Ид` = DEFAULT, `Рег. номер отчета` = "46537-2", `Дата/время составления отчета` = "23.09.2023 14:30", `Ид\СОТД^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "003-СПЕ"), `Ид\СОТД^РУК` = (SELECT * FROM `Руководитель: СОТ` WHERE 1); INSERT INTO `Сотрудник с допуском` SET `Ид` = DEFAULT, `Рег. номер отчета` = "46542-1", `Дата/время составления отчета` = "27.12.2023 15:47", `Ид\СОТД^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "003-СПЕ"), `Ид\СОТД^РУК` = (SELECT * FROM `Руководитель: СОТ` WHERE 1); SELECT "`Сотрудник с допуском` Table Content:" FROM `Сотрудник с допуском` WHERE 1 = 0; SELECT * FROM `Сотрудник с допуском`; DROP TABLE IF EXISTS `Доступ к документу: СОТД*ДОК`; CREATE TABLE `Доступ к документу: СОТД*ДОК` (`Основание для выдачи` CHAR (150) NOT NULL , `Дата/время выдачи` CHAR (150) NULL , `Дата/время возврата` CHAR (10) NOT NULL , CONSTRAINT `ПК\ДОСТ` PRIMARY KEY (`Ид\ДОСТ^СОТД`, `Ид\ДОСТ^ДОК`) , `Ид\ДОСТ^СОТД` INT NOT NULL REFERENCES `Сотрудник с допуском` (`Ид`), `Ид\ДОСТ^ДОК` INT NOT NULL REFERENCES `Документ` (`Ид`)); INSERT INTO `Доступ к документу: СОТД*ДОК` SET `Основание для выдачи` = "Основание", `Дата/время выдачи` = "13.09.2023", `Дата/время возврата` = "20.09.2023", `Ид\ДОСТ^СОТД` = (SELECT `Ид` FROM `Сотрудник с допуском` WHERE `Рег. номер отчета` = "46537-2"), `Ид\ДОСТ^ДОК` = (SELECT `Ид` FROM `Документ` WHERE `Регномер` = "15-12"); SELECT "`Доступ к документу: СОТД*ДОК` Table Content:" FROM `Доступ к документу: СОТД*ДОК` WHERE 1 = 0; SELECT * FROM `Доступ к документу: СОТД*ДОК`; DROP VIEW IF EXISTS `вирт_Сотрудник, имевший допуск`; CREATE VIEW `вирт_Сотрудник, имевший допуск` AS SELECT `СОТ`.`Код` AS `Код сотрудника`, `СОТ`.`ФИО` AS `ФИО сотрудника`, `СПР`.`Код` AS `Код должности сотрудника`, `СПР`.`Название` AS `Название должности сотрудника`, `СОТ`.`Ид` AS `Ид\Сотрудник` FROM `Сотрудник%ПЕРС` AS `СОТ` LEFT JOIN `Справка+` AS `СПР` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПР`.`Ид` ; SELECT * FROM `вирт_Сотрудник, имевший допуск`; DROP PROCEDURE IF EXISTS `проц_Допуск сотрудника`; CREATE PROCEDURE `проц_Допуск сотрудника` (IN `@Ид\Сотрудник` INT) SELECT `ДОП`.`НПП` AS `НПП допуска`, `СПР`.`Код` AS `Код формы допуска`, `СПР`.`Название` AS `Название формы допуска`, `ДОП`.`Основание для присвоения` AS `Основание для присвоения допуска`, `РАЗ`.`Регномер` AS `Регномер разрешения`, `РАЗ`.`Дата` AS `Дата разрешения`, `ПРИК`.`Регномер` AS `Регномер приказа о присвоении`, `ПРИК`.`Дата` AS `Дата приказа о присвоении`, `ДОП`.`Основание для снятия` AS `Основание для снятия допуска`, `СОТ`.`Код` AS `Код руководителя`, `СОТ`.`ФИО` AS `ФИО руководителя`, `СПР1`.`Код` AS `Код должности руководителя`, `СПР1`.`Название` AS `Название должности руководителя` FROM `Допуск сотрудника\СОТ` AS `ДОП` LEFT JOIN `Разрешение` AS `РАЗ` ON `ДОП`.`Ид\ДОП^РАЗ` = `РАЗ`.`Ид` LEFT JOIN `Приказ` AS `ПРИК` ON `ДОП`.`Ид\ДОП^ПРИК` = `ПРИК`.`Ид` LEFT JOIN `Справка+` AS `СПР` ON `ДОП`.`Ид\ДОП^СПР` = `СПР`.`Ид` LEFT JOIN `Руководитель: СОТ` AS `РУК` ON `ПРИК`.`Ид\ПРИК^РУК` = `РУК`.`Ид\РУК^СОТ` LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `РУК`.`Ид\РУК^СОТ` = `СОТ`.`Ид` LEFT JOIN `Справка+` AS `СПР1` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПР1`.`Ид` WHERE `ДОП`.`Ид` = `@Ид\Сотрудник` ; CALL `проц_Допуск сотрудника` (1); DROP VIEW IF EXISTS `вирт_Сотрудник в запросе%Запрос на получение допуска`; CREATE VIEW `вирт_Сотрудник в запросе%Запрос на получение допуска` AS SELECT `СОТЗ`.`НПП` AS `НПП сотрудника`, `СОТ`.`Код` AS `Код сотрудника`, `СОТ`.`ФИО` AS `ФИО сотрудника`, `СПР2`.`Код` AS `Код должности сотрудника`, `СПР2`.`Название` AS `Название должности сотрудника`, `СОТЗ`.`Основание для присвоения` AS `Основание для присвоения допуска`, `СОТ1`.`Код` AS `Код ходатайствующего о присвоении`, `СОТ1`.`ФИО` AS `ФИО ходатайствующего о присвоении`, `СПР1`.`Код` AS `Код должности ходатайствующего`, `СПР1`.`Название` AS `Название должности ходатайствующего`, `РАЗ`.`Регномер` AS `Регномер разрешения`, `РАЗ`.`Дата` AS `Дата разрешения`, `ПРЕД`.`Код` AS `Код представителя`, `ПРЕД`.`ФИО` AS `ФИО представителя`, `ЗАПР`.`Регномер` AS `Регномер запроса`, `ЗАПР`.`Дата` AS `Дата запроса`, `СПР`.`Код` AS `Код формы допуска`, `СПР`.`Название` AS `Название формы допуска` FROM `Сотрудник в запросе: СОТ*ЗАПР` AS `СОТЗ` LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `СОТЗ`.`Ид\СОТЗ^СОТ` = `СОТ`.`Ид` LEFT JOIN `Запрос на получение допуска` AS `ЗАПР` ON `СОТЗ`.`Ид\СОТЗ^ЗАПР` = `ЗАПР`.`Ид` LEFT JOIN `Разрешение` AS `РАЗ` ON `СОТЗ`.`Ид\СОТЗ^РАЗ` = `РАЗ`.`Ид` LEFT JOIN `Специалист: СОТ` AS `СПЕЦ` ON `СОТЗ`.`Ид\СОТЗ^СПЕЦ` = `СПЕЦ`.`Ид\СПЕ^СОТ` LEFT JOIN `Представитель%ПЕРС` AS `ПРЕД` ON `СОТЗ`.`Ид\СОТЗ^ПРЕД` = `ПРЕД`.`Ид` LEFT JOIN `Справка+` AS `СПР2` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПР2`.`Ид` LEFT JOIN `Справка+` AS `СПР` ON `ЗАПР`.`Ид\ЗАПР^СПР` = `СПР`.`Ид` LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ1` ON `СПЕЦ`.`Ид\СПЕ^СОТ` = `СОТ1`.`Ид` LEFT JOIN `Справка+` AS `СПР1` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПР1`.`Ид` ; SELECT * FROM `вирт_Сотрудник в запросе%Запрос на получение допуска`; DROP VIEW IF EXISTS `вирт_Сотрудник с допуском_документы`; CREATE VIEW `вирт_Сотрудник с допуском_документы` AS WITH `ЧДО` AS ( SELECT `ДОСТ`.`Ид\ДОСТ^СОТД` AS `Ид_ДОК`, COUNT(*) AS `Кол_ДОК` FROM `Доступ к документу: СОТД*ДОК` AS `ДОСТ` GROUP BY `Ид\ДОСТ^СОТД`) SELECT `СОТД`.`Рег. номер отчета` AS `Рег. номер отчета`, `СОТД`.`Дата/время составления отчета` AS `Дата/время составления отчета`, `СОТ`.`Код` AS `Код сотрудника`, `СОТ`.`ФИО` AS `ФИО сотрудника`, `СПР2`.`Код` AS `Код должности сотрудника`, `СПР2`.`Название` AS `Название должности сотрудника`, `СПР3`.`Код` AS `Код допуска пользователя`, `СПР3`.`Название` AS `Название допуска пользователя`, `СОТ1`.`Код` AS `Код руководителя`, `СОТ1`.`ФИО` AS `ФИО руководителя`, `СПР1`.`Код` AS `Код должности руководителя`, `СПР1`.`Название` AS `Название должности руководителя`, COUNT(*) AS `Число документов` FROM `Доступ к документу: СОТД*ДОК` AS `ДОСТ` LEFT JOIN `Сотрудник с допуском` AS `СОТД` ON `ДОСТ`.`Ид\ДОСТ^СОТД` = `СОТД`.`Ид` LEFT JOIN `Руководитель: СОТ` AS `РУК` ON `СОТД`.`Ид\СОТД^РУК` = `РУК`.`Ид\РУК^СОТ` LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ1` ON `РУК`.`Ид\РУК^СОТ` = `СОТ1`.`Ид` LEFT JOIN `Справка+` AS `СПР1` ON `СОТ1`.`Ид_ДОЛ\СОТ^СПР` = `СПР1`.`Ид` LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `СОТД`.`Ид\СОТД^СОТ` = `СОТ`.`Ид` LEFT JOIN `Справка+` AS `СПР2` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПР2`.`Ид` LEFT JOIN `Справка+` AS `СПР3` ON `СОТ`.`Ид_ДОП\СОТ^СПР` = `СПР3`.`Ид` GROUP BY `ДОСТ`.`Ид\ДОСТ^СОТД` ; SELECT * FROM `вирт_Сотрудник с допуском_документы`; DROP VIEW IF EXISTS `вирт_Сотрудник с допуском_секретные документы`; CREATE VIEW `вирт_Сотрудник с допуском_секретные документы` AS WITH `ЧСДО` AS ( SELECT `ДОСТ`.`Ид\ДОСТ^СОТД` AS `Ид_ДОК`, COUNT(*) AS `Кол_ДОК` FROM `Доступ к документу: СОТД*ДОК` AS `ДОСТ` GROUP BY `Ид\ДОСТ^СОТД`) SELECT `СОТД`.`Рег. номер отчета` AS `Рег. номер отчета`, `СОТД`.`Дата/время составления отчета` AS `Дата/время составления отчета`, `СОТ`.`Код` AS `Код сотрудника`, `СОТ`.`ФИО` AS `ФИО сотрудника`, `СПР2`.`Код` AS `Код должности сотрудника`, `СПР2`.`Название` AS `Название должности сотрудника`, `СПР3`.`Код` AS `Код допуска пользователя`, `СПР3`.`Название` AS `Название допуска пользователя`, `СОТ1`.`Код` AS `Код руководителя`, `СОТ1`.`ФИО` AS `ФИО руководителя`, `СПР1`.`Код` AS `Код должности руководителя`, `СПР1`.`Название` AS `Название должности руководителя`, COUNT(*) AS `Число секретных документов` FROM `Доступ к документу: СОТД*ДОК` AS `ДОСТ` LEFT JOIN `Сотрудник с допуском` AS `СОТД` ON `ДОСТ`.`Ид\ДОСТ^СОТД` = `СОТД`.`Ид` LEFT JOIN `Руководитель: СОТ` AS `РУК` ON `СОТД`.`Ид\СОТД^РУК` = `РУК`.`Ид\РУК^СОТ` LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ1` ON `РУК`.`Ид\РУК^СОТ` = `СОТ1`.`Ид` LEFT JOIN `Справка+` AS `СПР1` ON `СОТ1`.`Ид_ДОЛ\СОТ^СПР` = `СПР1`.`Ид` LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `СОТД`.`Ид\СОТД^СОТ` = `СОТ`.`Ид` LEFT JOIN `Справка+` AS `СПР2` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПР2`.`Ид` LEFT JOIN `Справка+` AS `СПР3` ON `СОТ`.`Ид_ДОП\СОТ^СПР` = `СПР3`.`Ид` GROUP BY `ДОСТ`.`Ид\ДОСТ^СОТД` ; SELECT * FROM `вирт_Сотрудник с допуском_секретные документы`;
SQL
Server:
MariaDB 11.4
MariaDB 11.5
MariaDB 10
MariaDB 10 Sakila (ReadOnly)
MySQL 5.7
MySQL 5.7 Sakila (ReadOnly)
MySQL 8.0
MySQL 8.0 Sakila (ReadOnly)
SQLite 3
SQLite 3 Preloaded
PostgreSQL 10 Bookings (ReadOnly)
PostgreSQL 11
PostgreSQL 12
PostgreSQL 13
PostgreSQL 14
PostgreSQL 15
MS SQL Server 2017
MS SQL Server 2019
MS SQL Server 2022
MS SQL Server 2022 AdventureWorks (ReadOnly)
Firebird 4.0
Firebird 4.0 (Employee)
Oracle Database 19c (HR)
Oracle Database 21c
Oracle Database 23c Free
SOQOL
Version
ER Diagram
Preserve result
Stuck with a problem?
Got Error?
Ask ChatGPT!
Result:
Copy
Clear