SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.07.2018 19:35:40

Pabubehaz
Участник
Зарегистрирован: 22.07.2018
Сообщений: 1

Не простой SQL запрос!

Дароу, народ!

Подскажите пожалуйста как реализовать данную выборку на SQL:
Есть таблица, содержащая информацию по всем поступающим платежи следующего вида:
(id | sum | type | date), т.е. содержит в себе информацию о дате платежа, его размере и типе(нал/безнал).

Необходимо реализовать следующее:
Вывести по датам сумму платежей за день, разделяя их по типам.

То есть нужно получить список вроде этого:
дата | сумма наличными (за этот день) | сумма безнал. (за этот день)

В чертогах моего разума я смог отыскать информацию достаточную лишь для составления SQL-запроса, выводящего по дням сумму только одного типа(только нал/ только безнал), выглядит он так:

SELECT sum(sum), date, type
FROM payments
GROUP BY date, type

Как справа присоединить(прикрепить, припаять) информацию о сумме "другого" типа оплаты за этот день, а не выводить её в отдельную строку?

Пробовал при помощи JOIN, но SQL ругается на синтаксис, т.к. WHERE должно идти уже после них, а не в них самих

Неактивен

 

#2 22.07.2018 19:44:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Не простой SQL запрос!

SELECT `date`, sum(if(`type` = 'нал', `sum`, 0)) as 'сумма наличными', sum(if(`type` = 'безнал', `sum`, 0)) as 'сумма безнал'
FROM payments
GROUP BY date
 

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson