我有一个查询,我想要显示debit
,credit
& balance
。表中没有balance
列。我从debit
& credit
计算余额。显示适当的余额笔记
我试图创建一个余额列,其中余额将被存储并从表中显示出来。但是,如果我更新或删除任何行,天平将不合适。
我在SO上找到了下面的代码。但是,当一个日期有一行时,日期的多个列无法正常工作时,它就起作用。它显示日益平衡,我想逐行显示余额。
MySQL的
SELECT
m.`id`,
m.`date`,
m.`credit`,
m.`debit`,
SUM(t.`credit`) - SUM(t.`debit`) AS `balance`
FROM `cash_book` m
JOIN (
SELECT
`id`,
`date`,
`credit`,
`debit`
FROM
`cash_book`
) t ON t.`date` <= m.`date`
WHERE `customer_id` = 1
GROUP BY
m.`id`
ORDER BY m.`date` ASC
它返回的结果是这样的:
Date Debit Credit Balance
2016-11-27 0 2000 2000
2016-12-02 0 500000 585000 //same result for date 2016-12-02
2016-12-02 15000 0 585000 //same result for date 2016-12-02
2016-12-02 0 100000 585000 //same result for date 2016-12-02
2016-12-03 1200 0 583800
2016-12-04 3160 0 580540 //same result for date 2016-12-04
2016-12-04 100 0 580540 //same result for date 2016-12-04
2016-12-05 30 0 580510
2016-12-06 0 150 580660
但我想要的结果是这样的:
Date Debit Credit Balance
2016-11-27 0 2000 2000
2016-12-02 0 500000 502000
2016-12-02 15000 0 487000
2016-12-02 0 100000 587000
2016-12-03 1200 0 585800
2016-12-04 3160 0 582640
2016-12-04 100 0 582540
2016-12-05 30 0 582510
2016-12-06 0 150 582660
请也给数据,因此这将是给你 –
有你的表也是一个独特的ID字段的解决方案? –
@BerndBuffen是的。我有唯一的ID字段。 – smartrahat