-- =====================================================================
-- ЗАДАНИЕ 4. Простые запросы на выборку (Выборка из 2-х таблиц)
-- =====================================================================
-- Запрос 4.1: Список выданных книг с именами читателей, которые их взяли
SELECT r.full_name AS 'Читатель', b.title AS 'Название книги', bl.loan_date AS 'Дата выдачи'
FROM book_loans bl
JOIN readers r ON bl.ticket_number = r.ticket_number
JOIN books b ON bl.id_book = b.id_book;
-- Запрос 4.2: Вывод списка книг и сотрудников, которые оформляли на них вкладыши
SELECT e.full_name AS 'Сотрудник', b.title AS 'Выданная книга'
FROM book_loans bl
JOIN employees e ON bl.id_employee = e.id_employee
JOIN books b ON bl.id_book = b.id_book;
-- =====================================================================
-- ЗАДАНИЕ 5. Сложные запросы на выборку (Минимум 3 таблицы + агрегаты)
-- =====================================================================
-- Запрос 5.1: Полная информация по активным (не возвращенным) выдачам: кто взял, что взял и какой сотрудник оформил
SELECT
r.full_name AS 'ФИО Читателя',
b.title AS 'Название Книги',
e.full_name AS 'Выдал Сотрудник',
bl.loan_date AS 'Взято от'
FROM book_loans bl
JOIN readers r ON bl.ticket_number = r.ticket_number
JOIN books b ON bl.id_book = b.id_book
JOIN employees e ON bl.id_employee = e.id_employee
WHERE bl.is_returned = FALSE;
-- Запрос 5.2: Подсчет общего количества книг, взятых каждым читателем за всё время, и их общая стоимость
SELECT
r.full_name AS 'Читатель',
COUNT(bl.id_loan) AS 'Всего книг взял',
SUM(b.price) AS 'Общая стоимость книг (руб.)'
FROM book_loans bl
JOIN readers r ON bl.ticket_number = r.ticket_number
JOIN books b ON bl.id_book = b.id_book
GROUP BY r.ticket_number, r.full_name;
-- =====================================================================
-- ЗАДАНИЕ 6. Запрос на обновление данных
-- =====================================================================
-- Ситуация: Читатель вернул книгу. Обновляем статус вкладыша (ставим отметку о возврате и дату)
UPDATE book_loans
SET is_returned = TRUE, return_date = '2026-06-26'
WHERE ticket_number = 1 AND id_book = 2 AND is_returned = FALSE;
-- =====================================================================
-- ЗАДАНИЕ 7. Запрос на удаление данных
-- =====================================================================
-- Ситуация: Книга "Совершенный код" была списана (утеряна/ветхость), удаляем её из каталога
DELETE FROM books
WHERE title = 'Совершенный код';