Задать вопрос
@maksam07

Как в одной таблице по разным признакам в столбце вычесть сумма одних значений из других?

Добрый день. Не знаю как правильно задать вопрос, но лучше попробую рассказать что есть:

Предположим есть таблица:
CREATE TABLE IF NOT EXISTS tablename(
    `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `type` int(11) NOT NULL,
    `sum` varchar(50) NOT NULL default '0',
    PRIMARY KEY ( `id` )	
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Это таблица приходов/расходов денежных средств.
type=0 - приход, type=1 - расход
sum - сумма прихода/расхода

Есть 10 строк, 5 приходов и 5 расходов.
Можно ли одним запросом получить результат суммирования всех приходов(между приходами), расходов(между расходами) и вычесть приходы из расходов? То есть получить как бы "баланс".
  • Вопрос задан
  • 352 просмотра
Подписаться 1 Простой Комментировать
Решение пользователя Slava Rozhnev К ответам на вопрос (2)
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Вот возможное решение:
select
	sum(if(`type` = 0, `sum`, 0)) `income`,
	sum(if(`type` = 1, `sum`, 0)) `outcome`,
	sum(if(`type` = 0, `sum`, -`sum`)) `balance`
from tablename;


Test SQL online
Ответ написан