表A:
编号 时间                       消费金额 存款金额 余额   记录号
0001 2008-07-01 11:10:39.000 0.00  200.00   0.00   583
0001 2008-07-01 11:21:18.000 1.00  0.00   216.10  584
0002 2008-07-01 12:04:30.000 7.00  0.00   52.55   427
0002 2008-07-01 12:24:19.000 0.00  150.00   0.00   428
0002 2008-07-02 11:54:50.000 7.00  0.00   195.55  429如何通过语句更新余额?
更新流水后,表A如下:
编号 时间                       消费金额 存款金额 余额   记录号
0001 2008-07-01 11:10:39.000 0.00  200.00   217.1   583
0001 2008-07-01 11:21:18.000 1.00  0.00   216.10  584
0002 2008-07-01 12:04:30.000 7.00  0.00   52.55   427
0002 2008-07-01 12:24:19.000 0.00  150.00   202.55  428
0002 2008-07-02 11:54:50.000 7.00  0.00   195.55  429

解决方案 »

  1.   


    create table #1(id varchar(5),createtime datetime,消费金额 float,存款金额 float,余额 float, 记录号 int)
    insert into #1 select '0001', '2008-07-01 11:10:39.000', 0.00, 200.00,   0.00,   583 
    insert into #1 select '0001', '2008-07-01 11:21:18.000', 1.00, 0.00,   216.10,  584 
    insert into #1 select '0002', '2008-07-01 12:04:30.000', 7.00, 0.00,   52.55 ,  427 
    insert into #1 select '0002', '2008-07-01 12:24:19.000', 0.00, 150.00,   0.00,   428 
    insert into #1 select '0002', '2008-07-02 11:54:50.000', 7.00, 0.00,   195.55,  429 declare @id varchar(20),@name floatupdate #1 set  @name=case when id=@id then  @name-消费金额+存款金额  else 存款金额-消费金额 end,
    @id=id,余额=@nameselect * from #1/*
    id    createtime              消费金额                   存款金额                   余额                     记录号
    ----- ----------------------- ---------------------- ---------------------- ---------------------- -----------
    0001  2008-07-01 11:10:39.000 0                      200                    200                    583
    0001  2008-07-01 11:21:18.000 1                      0                      199                    584
    0002  2008-07-01 12:04:30.000 7                      0                      -7                     427
    0002  2008-07-01 12:24:19.000 0                      150                    143                    428
    0002  2008-07-02 11:54:50.000 7                      0                      136                    429(5 行受影响)
    */