Автор: | О. Константинов | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log |
Студент ДВФУ проходил производственную практику в ИТ-отделе предприятия.
Должность руководителя отдела называется PC Principal
.
По окончании практики студенту требуется составить отчет, частью которого
является описание организационной структуры ИТ-отдела предприятия.
Он решил воспользоваться локальной БД предприятия, которая хранит
в одной таблице Employees
список всех сотрудников вместе
с иерархией подчиненности (для каждого
сотрудника указывается его непосредственный начальник).
Для учредителя компании поле ChiefID
равно NULL
.
Название занимаемых должностей вынесено в отдельную таблицу Positions
.
У линейного персонала может быть не указана должность.
Ниже представлено детальное DDL-описание таблиц:
TABLE Employees ( -- хранит список сотрудников
ID INTEGER PRIMARY KEY AUTOINCREMENT -- уникальный идентификатор
NOT NULL,
FullName TEXT NOT NULL, -- ФИО сотрудника
PositionID INTEGER REFERENCES Positions (ID), -- должность сотрудника
ChiefID INTEGER REFERENCES Employees (ID) -- непосредственный начальник
);
TABLE Positions ( -- хранит список должностей
ID INTEGER PRIMARY KEY AUTOINCREMENT -- уникальный идентификатор
NOT NULL,
Title TEXT UNIQUE -- название должности
NOT NULL
);
Требуется создать представление ShowITEmployees
, вызов которого вернут список
всех сотрудников ИТ-отдела во главе с PC Principal
. Схема БД в UML-нотации:
Результатом выполнения запроса должен быть список кортежей
(ID, FullName, Position, ChiefID)
.
Описание полей запроса:
ID
- идентификатор сотрудника;FullName
- ФИО сотрудника;Position
- должность сотрудника;ChiefID
- идентификатор руководителя сотрудника.Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Полагается, что для работы с базой данных используется SQLite3.