id inCome outCome endCome changeDate 1  2        2      0          2002-12-03 
1 10        1     0           2002-02-03 
1 30        2     0           2002-01-03 
2 40       10     0           2002-03-04 
2 30      20       0            2002-03-03 
---------------------------------------------- 
要求: 
根据id: 
结果: 
id inCome outCome endCome 
1   2       2      0 
1   10       1     9    -----为9+0 endCome 
1    30     20    19       ===30-20+9 endcome 
2   40      10     30 
2   30       20     40 
------------------------------------- 
endcome=isnull(sum(cast(inCome as money)-sum(cast(outcome as money)),0)

解决方案 »

  1.   

    数据库里增加income,或者outcome时,endcome的值为0,endcome=income-outcome
    比如说:id =1 income=10 outcome=1 endcome=0 写入数据后,
    接着增加一条数据id=1 income=20 ouccome=10 endcome=0最后查询的结果为:
    id  income outcome endcome
    1    10     1       9
    1    20    10       19
      

  2.   

    就是相当与阶段性的求endcome的值,
      

  3.   

    明白你的意思了,阶段是按照 ID 计算的吗? 那按照什么排序呢?一个SQL 好象解决不了,你就在每插入一条记录的时候将ENDCOME 计算更新一下就可以了
      

  4.   

    一条语句没法搞定的,
    每新增时,去取数据得到当前的endcome后,再与当前数据合并,再入库吧。
    哈哈~~~
      

  5.   

    全部检索出来 放在GRID里 用代码计算完再更新
      

  6.   

    javaCoffee33(EastenStar) ( ) 信誉:100 
    解决了,后来就是按照这种方法做的,谢谢
      

  7.   

    endcome(n)=income(n)-outcome(n)+endcome(n-1)