Есть вот такая таблица
crm_reffin:
id | playdate | totalsum | refid |
---|
1 | 2016-02-27 18:47:29.850391 | 10 | 18 |
2 | 2016-02-27 18:47:43.309427 | 20 | 18 |
3 | 2016-02-27 21:36:19.088732 | 100 | 18 |
Также есть еще таблица
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);
В результате получаю следующую таблицу:
paydate | credit | sumdebet |
---|
2016-02-27 18:47:29.850391 | 10 | 8451 |
2016-02-27 18:47:43.309427 | 20 | 8451 |
2016-02-27 21:36:19.088732 | 100 | 8451 |
Где 10 и 20 — это суммы выплат, а 8451 — это общая накопленная сумма для выплаты.
Не могу никак сообразить как в одном запросе производить правильное вычитание из остатка, чтобы получалась следующая таблица:
paydate | credit | sumdebet |
---|
2016-02-27 18:47:29.850391 | 10 | 8451 |
2016-02-27 18:47:43.309427 | 20 | 8441 |
2016-02-27 21:36:19.088732 | 100 | 8421 |