在单个查询中使用不同的值更新多行
本文关键字:更新 查询 单个 | 更新日期: 2023-09-27 17:50:56
我有一个总账表在数据库(SQL Server 2005),与列(ID, Insertion_Date, Invoice_No,借记卡,信用卡和余额)。
当用户添加一些条目时,将给他填写发票编号。和金额(借方),因此余额将自动添加为余额=余额-金额。无论如何,在同一发票有多行之后,用户决定编辑前一行的金额。编辑金额后,同一行和其他行的余额应自动更改。(如:编辑的行将采用新的金额,如:Balance = Balance - newamount,其他行将采用新的余额和子。与他们当前的金额)
示例:Table GLID 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和需要帮助。请询问更多信息。如果需要。
我强烈建议您不要将"running total"作为事务表中的字段—在视图、存储过程或消费应用程序中计算它。否则,对一条记录的更改可能会级联到表中的所有其他记录。