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

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

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

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

общая

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

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

textual
Листинг программы
select FIOClient as Client,
sum(Detail.Quantity*Price.Price) as all_summ,
sum(case when Price.NDSIn = True then Detail.Quantity*Price.Price else 0 end) as withoutnds_umm,
sum(case when Price.NDSIn = false then Detail.Quantity*Price.Price else 0 end) as withnds_summ
from ((client inner join sales on Client.IDClient = sales.IDClient) 
inner join Detail on sales.IDSales=Detail.IDDetail)
inner join Price on Detail.IDTovar = price.IDprice
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
Похожие ответы