Составление запроса с агрегатными функциями - MySQL

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

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

Добрый день! Помогите пожалуйста правильно составить запрос: Таблица operations имеет такую структуру(для нее есть еще доп. таблица со свойствами - ее приводит не буду): opr_id | opr_type | opr_document | opr_quantity | opr_item 1________2___________1_____________10________2 2________2___________1_____________3_________5 3________2___________2_____________4________16 4________1___________4_____________1________18
Листинг программы
  1. SELECT
  2. COALESCE( SUM(CASE WHEN opr_type=2 THEN oap_cost*opr_quantity ELSE 0 END), 0.0) sls_total_cost
  3. FROM operations
  4. JOIN operations_additional_prop ON opr_id = oap_operation
Что делает данный запрос - понятно. И есть такой запрос. Он сначала группирует по типу и документу
Листинг программы
  1. SELECT
  2. COALESCE( SUM(CASE WHEN opr_type=2 THEN (ТУТ БУДЕТ ПОДЗАПРОС НА ОСНОВАНИИ ID ДОКУМЕНТА) ELSE 0 END), 0.0) sls_total_payment
  3. FROM operations
  4. JOIN operations_additional_prop ON opr_id = oap_operation
  5. GROUP BY opr_type, opr_document
Так вот хотелось бы объединить два этих запроса в один. Т.е. расчитывать sls_total_cost и sls_total_payment в одном запросе. Но проблема в том, что для расчета sls_total_cost группировка не нужна, а для sls_total_payment обязательна. Буду благодарен за помощь

Решение задачи: «Составление запроса с агрегатными функциями»

textual
Листинг программы
  1. SELECT COALESCE(SUM(ТУТ БУДЕТ ПОДЗАПРОС НА ОСНОВАНИИ ID ДОКУМЕНТА), 0.0) sls_total_payment,
  2. (SELECT COALESCE( SUM(oap_cost*opr_quantity), 0.0) FROM operations
  3.  JOIN operations_additional_prop  ON  opr_id = oap_operation
  4. WHERE opr_type=2) sls_total_cost
  5. FROM  operations
  6. JOIN operations_additional_prop  ON  opr_id = oap_operation
  7. WHERE opr_type = 2
  8. GROUP BY opr_document

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


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

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

9   голосов , оценка 4.556 из 5

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

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

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