Создание запроса - MySQL (219789)
Формулировка задачи:
На собеседовании дали такую задачку. Помогите решить: есть БД, в ней таблицы Клиенты со столбцами id, название клиента, тип клиента (оптовый, розничный); таблица Накладные со столбцами id, id_клиента, месяц, сумма.
В ответе на запрос должна содержаться таблица из двух столбцов: название фирмы-клиента (столбик Клиент) и Тип. В первом столбце - названия фирм, которым выставлены накладные в сентябре, для таких клиентов в столбике Тип должна стоять буква S, напротив тех, у кого сумма оплаты по накладным в сентябре вынесла больше 4900 должна в столбике Тип стоять буква V.
Как это сделать - ума не приложу и даже не знаю, нормально ли я спросила и как сформулировать эту проблему кратко.
И еще один запрос, выдающий сумму сентябрьских накладных, учитывая оптовые и розничные продажи.
Решение задачи: «Создание запроса»
textual
Листинг программы
SELECT q.client_name , CASE WHEN EXISTS( SELECT * FROM invoices w WHERE w.client_id = q.id AND w.month = 'September' GROUP BY w.client_id HAVING SUM(inv_sum) > 4900) THEN 'V' ELSE 'S' END AS TYPE FROM clients q
Объяснение кода листинга программы
- В данном коде используется язык SQL для написания запроса к базе данных.
- Запрос предназначен для выборки данных из двух таблиц:
clients
иinvoices
. - Результатом запроса будет выборка данных из таблицы
clients
. - В запросе используется функция CASE WHEN для определения типа клиента.
- Если для клиента существуют записи в таблице
invoices
за сентябрь и сумма этих записей превышает 4900, то тип клиента устанавливается какV
, в противном случае -S
. - В запросе используются следующие переменные:
- q.client_name - название переменной, значение - имя клиента.
- q.id - название переменной, значение - идентификатор клиента.
- 'September' - название переменной, значение - месяц сентябрь.
- w.client_id - название переменной, значение - идентификатор клиента из таблицы
invoices
. - w.month - название переменной, значение - месяц из таблицы
invoices
. - inv_sum - название переменной, значение - сумма счета из таблицы
invoices
. - 4900 - название переменной, значение - сумма счета, при которой тип клиента устанавливается как
V
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д