Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- select
- @c := if(s_charges.summ is null, 0, s_charges.summ) as charge,
- @p := if(s_payments.summ is null, 0, s_payments.summ) as payment,
- @d := if(@u = users.id, @d + @c - @p, @c - @p) as debt,
- @u := users.id as user_id,
- periods.id as period_id
- from users
- left join periods on true
- left join (select sum(value) as summ, user_id, period_id from charges group by user_id, period_id) as s_charges
- on s_charges.user_id = users.id and s_charges.period_id = periods.id
- left join (select sum(value) as summ, user_id, period_id from payments group by user_id, period_id) as s_payments
- on s_payments.user_id = users.id and s_payments.period_id = periods.id
- join
- (select @c := 0, @p := 0, @d := 0, @u := 0) var
- group by
- users.id, periods.id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement