Объединение нескольких таблиц, вывод суммы продаж по условию в 2 столбца - MySQL

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

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

Добрый день! Необходимо вывести отчет по продажам, который содержит: |ФИО покупателя |

общая

сумма покупок | в том числе с НДС | в том числе Без НДС | группировка по ФИО клиента Сделал группировку по фио и вывод общих сумм. А как добавить с/без НДС не могу понять. в таблице Price имеется поле "NDSIn" отвечающее за НДС "True" - НДС включен, "False" - Без НДС. p.s. для чего надо?.. есть товары на которые идет накрутка, и есть товары у которых цена установлена(к примеру сигареты)
Листинг программы
  1. select FIOClient as Client, sum(Detail.Quantity*Price.Price) as summ
  2. from ((client inner join sales on Client.IDClient = sales.IDClient)
  3. inner join Detail on sales.IDSales=Detail.IDDetail)
  4. inner join Price on Detail.IDTovar = price.IDprice
  5. group by fioClient

Решение задачи: «Объединение нескольких таблиц, вывод суммы продаж по условию в 2 столбца»

textual
Листинг программы
  1. select FIOClient as Client,
  2. sum(Detail.Quantity*Price.Price) as all_summ,
  3. sum(case when Price.NDSIn = True then Detail.Quantity*Price.Price else 0 end) as withoutnds_umm,
  4. sum(case when Price.NDSIn = false then Detail.Quantity*Price.Price else 0 end) as withnds_summ
  5. from ((client inner join sales on Client.IDClient = sales.IDClient)
  6. inner join Detail on sales.IDSales=Detail.IDDetail)
  7. inner join Price on Detail.IDTovar = price.IDprice
  8. group by fioClient

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

  1. Код объединяет несколько таблиц: clients, sales, detail, price.
  2. В первой строке выбираются необходимые поля из таблиц: FIOClient из таблицы clients, sum(Detail.QuantityPrice.Price) из таблицы sales, sum(case when Price.NDSIn = True then Detail.QuantityPrice.Price else 0 end) и sum(case when Price.NDSIn = false then Detail.Quantity*Price.Price else 0 end) из таблицы detail.
  3. Вторая строка указывает условия для объединения таблиц: inner join.
  4. Третья строка группирует данные по FIOClient.
  5. Четвертая строка вычисляет сумму продаж (all_summ), где NDSIn равно true и сумму продаж (withnds_summ), где NDSIn равно false.

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


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

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

14   голосов , оценка 4.071 из 5

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

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

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