Я пытаюсь получить текущий баланс выплат в таблице, которая будет отображаться в списке транзакций.Сумма каждой выплаты слева и промежуточная сумма (накопленный остаток) справа.
Вот мой запрос:
SELECT *, SUM(payment_sum) as total, @running_total := @running_total
+ payment_sum AS cumulative_sum FROM payments JOIN
(SELECT @running_total := 0)t WHERE id=?
GROUP BY source, report_date;
Payment_sum и cumulative_sum (промежуточная сумма)исправить, если я не сгруппировать по источникам и report_date.Тогда сумма payment_sum верна, а промежуточный итог - нет.Мне нужно сгруппировать по источнику и report_date, так как платеж из одного и того же источника может происходить в одну и ту же дату, поэтому я хотел бы сгруппировать все платежи из одного источника, чтобы они не отображались дважды.Это приводит к тому, что промежуточный итог дает ложный баланс.похоже, что только первая группа источников суммируется.
вывод без группировки источников (правильный баланс):
Source date payout balance
Google 10/18/18 $5.00 $ 5.00
Google 10/18/18 $5.00 $10.00
Amazon 10/18/18 $2.50 $12.50
Amazon 10/18/18 $2.50 $15.00
WebStore 10/18/18 $2.00 $17.00
вывод с источником группировки (неправильный баланс):
Source date payout balance
Google 10/18/18 $10.00 $ 5.00
Amazon 10/18/18 $ 5.00 $ 7.50
WebStore 10/18/18 $ 2.00 $ 9.50
Желаемый результат: (источник, дата отчета сгруппирована)
Source date payout balance
Google 10/18/18 $10.00 $10.00
Amazon 10/18/18 $ 5.00 $15.00
WebStore 10/18/18 $ 2.00 $17.00
Есть идеи, как лучше отформатировать мой запрос для желаемых результатов?