Задать вопрос
@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 расходов.
Можно ли одним запросом получить результат суммирования всех приходов(между приходами), расходов(между расходами) и вычесть приходы из расходов? То есть получить как бы "баланс".
  • Вопрос задан
  • 351 просмотр
Подписаться 1 Простой Комментировать
Ответ пользователя Олег К ответам на вопрос (2)
402d
@402d
начинал с бейсика на УКНЦ в 1988
можно sum агрегатная функция может работать и по выражениям.
https://metanit.com/sql/mysql/6.4.php
класика case есть во всех диалектах SQL
if - упрошенный вариант в муське и ряде других

Получается нам нужно посчитать для строк подходящих под условия сумму выражения
амоунт по операции умножит на 1 или -1.
p.s.
поле в базе лучше не называть именами ключевых слов или функций
иначе все времы в кавычки брать придется. это я про имя поля sum
Ответ написан