ArsenBespalov
@ArsenBespalov
Сам себе разработчик

Как правильно сделать вычитание в SELECT PosgreSQL?

Есть вот такая таблица crm_reffin:
idplaydatetotalsumrefid
12016-02-27 18:47:29.8503911018
22016-02-27 18:47:43.3094272018
32016-02-27 21:36:19.08873210018


Также есть еще таблица crm_referals в которой содержится тот самый id для столбца refid из таблицы crm_reffin.

Помимо всего есть также таблица log, в которой много всякой информации, но также там есть информация по зачислению средств пользователями.

Для того, чтобы вывести информацию о том, сколько заработал реферер и сколько получил выплаты выполняется следующий запрос:

SELECT playdate, totals as credit, (SELECT sum(debate) * 0.1 FROM log WHERE uid IN (SELECT id FROM users WHERE refid = (SELECT id FROM crm_referals WHERE uid = :uid))) AS sumdebet FROM crm_reffin WHERE refid = (SELECT id FROM crm_referals WHERE uid = :uid);


В результате получаю следующую таблицу:
paydatecreditsumdebet
2016-02-27 18:47:29.850391108451
2016-02-27 18:47:43.309427208451
2016-02-27 21:36:19.0887321008451


Где 10 и 20 — это суммы выплат, а 8451 — это общая накопленная сумма для выплаты.

Не могу никак сообразить как в одном запросе производить правильное вычитание из остатка, чтобы получалась следующая таблица:
paydatecreditsumdebet
2016-02-27 18:47:29.850391108451
2016-02-27 18:47:43.309427208441
2016-02-27 21:36:19.0887321008421
  • Вопрос задан
  • 423 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vovik0134
Нужно смотреть в сторону аналитических функций lag и lead.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы