Создание запроса - 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

Объяснение кода листинга программы

  1. В данном коде используется язык SQL для написания запроса к базе данных.
  2. Запрос предназначен для выборки данных из двух таблиц: clients и invoices.
  3. Результатом запроса будет выборка данных из таблицы clients.
  4. В запросе используется функция CASE WHEN для определения типа клиента.
  5. Если для клиента существуют записи в таблице invoices за сентябрь и сумма этих записей превышает 4900, то тип клиента устанавливается как V, в противном случае - S.
  6. В запросе используются следующие переменные:
    • q.client_name - название переменной, значение - имя клиента.
    • q.id - название переменной, значение - идентификатор клиента.
    • 'September' - название переменной, значение - месяц сентябрь.
    • w.client_id - название переменной, значение - идентификатор клиента из таблицы invoices.
    • w.month - название переменной, значение - месяц из таблицы invoices.
    • inv_sum - название переменной, значение - сумма счета из таблицы invoices.
    • 4900 - название переменной, значение - сумма счета, при которой тип клиента устанавливается как V.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5