【发布时间】:2019-03-01 11:51:32
【问题描述】:
我有两张桌子
信用表
id date credit
1 4-1-2019 300
2 10-1-2019 500
3 10-2-2019 300
借记表
id date debit
1 2-1-2019 400
2 6-1-2019 600
3 2-2-2019 300
我想要一个表格来合并这些数据并显示余额,按日期排序
类似的东西
id date debit credit balance
1 2-1-2019 400 400
1 4-1-2019 300 100
2 6-1-2019 600 700
2 10-1-2019 500 200
3 2-2-2019 300 500
3 10-2-2019 300 200
更新
我正在使用@Gordon Linoff 代码
select b.*,
(@b := @b + coalesce(debit, 0) - coalesce(credit, 0)) as balance from (select id, date, debit, credit
from ((select id, date, debit, "0" as credit
from debit
) union all
(select id, date, "0" as debit, credit
from credit
)
) b
order by date
) b CROSS join
(select @b := 0) params
它工作但我得到这样的输出table
id date debit credit balance
1 2-1-2019 400 400
2 6-1-2019 600 1000
3 2-2-2019 300 1300
1 4-1-2019 300 1000
2 10-1-2019 500 500
3 10-2-2019 300 200
我需要在这里按日期对整个数据进行排序,因为您可以看到首先排序的借方表数据,然后是贷方表的数据
【问题讨论】:
-
你应该解释一下你到目前为止所尝试的,这样其他人可能会更快地发现你的问题并给你一个更好的答案。