Объединение нескольких таблиц, вывод суммы продаж по условию в 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
Объяснение кода листинга программы
- Код объединяет несколько таблиц: clients, sales, detail, price.
- В первой строке выбираются необходимые поля из таблиц: 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.
- Вторая строка указывает условия для объединения таблиц: inner join.
- Третья строка группирует данные по FIOClient.
- Четвертая строка вычисляет сумму продаж (all_summ), где NDSIn равно true и сумму продаж (withnds_summ), где NDSIn равно false.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д