我在数据库(SQL Server 2005)中有一个总帐表,包含列(ID,Insertion_Date,Invoice_No,Debit,Credit和Balance).
当用户添加一些条目时,他将被给予填写发票号码.和金额(借方)因此余额将自动添加为余额=余额 - 金额.无论如何,在为同一发票设置多行之后,用户决定编辑前一行的金额.编辑金额后,同一行和其他行的余额应自动更改.(如:编辑的行将采用新的金额,如:Balance = Balance - newamount,其他行将采用新余额和sub.及其当前金额).
示例:表格GL
ID Date Invoice_No Debit Credit Balance
---------------------------------------------------------
1 19/3/2014 123456 0 400 400
2 19/3/2014 123456 100 0 300
3 20/3/2014 123456 50 0 250
4 21/3/2014 123456 100 0 150
5 22/3/2014 123456 50 0 100
Run Code Online (Sandbox Code Playgroud)
在使用ID 2编辑行并在借记列上进行更改(而不是100使其为50)之后,其他行将受影响,因此结果应如下所示.
ID Date Invoice_No Debit Credit Balance
---------------------------------------------------------
1 19/3/2014 123456 0 400 400
2 19/3/2014 123456 50 0 350
3 20/3/2014 123456 50 0 300
4 21/3/2014 123456 100 0 200
5 22/3/2014 123456 50 0 150
Run Code Online (Sandbox Code Playgroud)
任何想法如何通过单个查询来管理它.我是SQL新手,需要帮助.请询问更多信息.如果需要的话.
我强烈建议您不要将"运行总计"作为事务表中的字段保留 - 在视图,存储过程或消费应用程序中计算它.否则,对一个记录的更改将级联到表中的每个其他记录.