MySQL查询来计算运行余额

时间:2019-06-23 05:03:20

标签: mysql

大家好,我希望有人能帮助我。我有1个表,我想创建一个mysql查询,该查询将在最后一个列中添加一列,该列将计算存款金额和支票发行金额(存款金额-支票发行金额)= RUNNING BALANCE

tbl

-------------------------------------------------------------------------
| Date_Deposited | deposited_amount | Date_Cheque_Issued | issued_amount |
-------------------------------------------------------------------------
   May 16, 2019        1,000.00          May 16, 2019          500.00
                                         May 17, 2019          100.00
   May 18 2019         1,000.00 

我希望在最后一个带有BALANCE列的表格中创建

------------------------------------------------------------------------------
| Date_Deposited | deposited_amount | Date_Cheque_Issued | issued_amount | Bal |
-------------------------------------------------------------------------
May 16, 2019        1,000.00          May 16, 2019       500.00         500.00                                           
                                      May 17, 2019       100.00         400.00
May 18 2019         1,000.00                                          1,400.00

2 个答案:

答案 0 :(得分:0)

可以使用temporary table计算运行余额。可以使用以下查询:

create TEMPORARY table tbl_temp (select * from tbl);
update tbl t1 set t1.Bal=(SELECT SUM(t2.deposited_amount-t2.issued_amount) FROM tbl_temp t2 WHERE t2.id<=t1.id);
select * from tbl;

需要一个临时表,因为要更新的表将在更新过程中被锁定,因此不能同时用于更新和选择。请注意,临时表仅在与MySQL服务器的连接期间存在。

上面的查询使用一个子查询,该查询返回临时表中直至当前行的所有行的余额。余额将分配给实际表中的当前行。该查询假定tbl表具有一个名为'id'的主键列。

答案 1 :(得分:-2)

您可以先更改表以添加列,例如

hugo new projects/projectsample.md

在表中创建列之后,您可以使用update语句使用数据对其进行更新

Error: yaml: line 1: did not find expected key