我正在尝试做一个快速的会计 sql 语句,但遇到了一些问题。
我有 3 个表格注册、活动和付款表格。注册是个人交易,事件是有关他们注册内容的信息,付款是对事件的付款。
我想合计注册支付的金额,将活动名称和活动开始日期放入一列,然后合计迄今为止支付的金额。如果可能的话,我还想找到一个未付的总额。我相信底部会计算出除了支付总额之外的所有内容。付款总额比它应该的要大得多,很可能通过使用 SUM 因为嵌套而多次计算付款。
select
sum(`reg_amount`) as total,
event_name,
event_startdate,
(
select sum(payment_amount) as paid
from registrations
group by events.event_id
) pay
FROM registrations
left join events
on events.event_id = registrations.event_id
left join payments
on payments.event_id = events.event_id
group by registrations.event_id