簡単な会計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