Я пытаюсь сделать быстрый бухгалтерский отчет 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
reg_amount
происходит отregistrations
? Если да, то я не понимаю, зачем вам нужно соединение сpayments
- и вам, вероятно, нужно предложениеwhere
в подзапросе "pay", чтобы ограничить то, что возвращается к соответствующему событию. - person AjV Jsy   schedule 02.04.2013