我在数据库(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
编辑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
任何想法如何通过单个查询来管理它。我是SQL新手,需要帮助。请询问更多信息。如果需要的话。
答案 0 :(得分:7)
我强烈建议您不要将“运行总计”作为事务表中的字段保留 - 在视图,存储过程或消费应用程序中计算它。否则,对一个记录的更改将级联到表中可能的每个其他记录。