Автор: | Л. Александр, М. Иван | Ограничение времени: | 1 сек | |
Входной файл: | test.sql | Ограничение памяти: | 256 Мб | |
Выходной файл: | test.log | |||
Максимальный балл: | 1 |
Как менеджер небольшого гостиничного комплекса, вы столкнулись с интригующей дилеммой управления финансами клиентов, которая стала подлинным лабиринтом финансовых непоняток.
Недавно, в ходе масштабного анализа, вы выявили весьма запутанный сценарий: у некоторых ваших ценных гостей появились долги. Каждый клиент задолжал за свой номер и потребленные им услуги. И хотя, конечно, эти задолженности, в какой-то степени, погашаются.
Необходимо предпринять сложные и деликатные шаги, такие как звонки и напоминания, чтобы ввести гостей в курс дела относительно оставшихся N рублей долга.
CREATE TABLE IF NOT EXISTS client
(
client_id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
email TEXT,
phone_number TEXT
);
CREATE TABLE IF NOT EXISTS payment
(
payment_id INTEGER PRIMARY KEY,
reservation_id INTEGER,
payment_method TEXT,
amount DECIMAL(10, 2),
payment_date DATETIME,
FOREIGN KEY (reservation_id) REFERENCES reservation (reservation_id)
);
CREATE TABLE IF NOT EXISTS reservation_service
(
reservation_service_id INTEGER PRIMARY KEY,
reservation_id INTEGER,
service_id INTEGER,
FOREIGN KEY (reservation_id) REFERENCES reservation (reservation_id),
FOREIGN KEY (service_id) REFERENCES service (service_id)
);
CREATE TABLE IF NOT EXISTS reservation
(
reservation_id INTEGER PRIMARY KEY,
room_id INTEGER,
client_id INTEGER,
check_in_date DATE,
check_out_date DATE,
staff_id INTEGER,
FOREIGN KEY (room_id) REFERENCES room (room_id),
FOREIGN KEY (client_id) REFERENCES client (client_id),
FOREIGN KEY (staff_id) REFERENCES staff (staff_id)
);
CREATE TABLE IF NOT EXISTS rooms
(
room_id INTEGER PRIMARY KEY,
room_number TEXT,
room_type TEXT,
rate DECIMAL(10, 2)
);
CREATE TABLE IF NOT EXISTS service
(
service_id INTEGER PRIMARY KEY,
service_name TEXT,
price DECIMAL(10, 2)
);
CREATE TABLE IF NOT EXISTS staff
(
staff_id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
position TEXT
);
Схема БД в UML-нотации:
Результатом выполнения запроса должен быть список кортежей
(client_name, remaining_amount)
,
отсортированный по убыванию значений поля remaining_amount.
Решение следует представить в виде текстового файла, содержащего единственный SQL-запрос.
Предполагается, что для работы с базой данных используется SQLite3.