在单个查询中使用不同的值更新多行

本文关键字:更新 查询 单个 | 更新日期: 2023-09-27 17:50:56

我有一个总账表在数据库(SQL Server 2005),与列(ID, Insertion_Date, Invoice_No,借记卡,信用卡和余额)。

当用户添加一些条目时,将给他填写发票编号。和金额(借方),因此余额将自动添加为余额=余额-金额。无论如何,在同一发票有多行之后,用户决定编辑前一行的金额。编辑金额后,同一行和其他行的余额应自动更改。(如:编辑的行将采用新的金额,如:Balance = Balance - newamount,其他行将采用新的余额和子。与他们当前的金额)

示例:Table 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和需要帮助。请询问更多信息。如果需要。

在单个查询中使用不同的值更新多行

我强烈建议您不要将"running total"作为事务表中的字段—在视图、存储过程或消费应用程序中计算它。否则,对一条记录的更改可能会级联到表中的所有其他记录。