Создание запроса - MySQL (219789)

Узнай цену своей работы

Формулировка задачи:

На собеседовании дали такую задачку. Помогите решить: есть БД, в ней таблицы Клиенты со столбцами id, название клиента, тип клиента (оптовый, розничный); таблица Накладные со столбцами id, id_клиента, месяц, сумма. В ответе на запрос должна содержаться таблица из двух столбцов: название фирмы-клиента (столбик Клиент) и Тип. В первом столбце - названия фирм, которым выставлены накладные в сентябре, для таких клиентов в столбике Тип должна стоять буква S, напротив тех, у кого сумма оплаты по накладным в сентябре вынесла больше 4900 должна в столбике Тип стоять буква V. Как это сделать - ума не приложу и даже не знаю, нормально ли я спросила и как сформулировать эту проблему кратко. И еще один запрос, выдающий сумму сентябрьских накладных, учитывая оптовые и розничные продажи.

Решение задачи: «Создание запроса»

textual
Листинг программы
  1. SELECT
  2.   q.client_name
  3. , CASE WHEN EXISTS(
  4. SELECT * FROM invoices w WHERE w.client_id = q.id AND w.month = 'September'
  5. GROUP BY w.client_id HAVING SUM(inv_sum) > 4900) THEN 'V' ELSE 'S' END AS TYPE
  6. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут