update mytable
set mytable.s_sum=case a.mykey when 1 then a.ord_col+b.ord_col else a.s_sum+b.ord_col end
from mytable as a left outer join v_mytable  as b on a.mykey=b.mykey
where mytable.mykey=a.mykey+1

解决方案 »

  1.   

    首先,你的表中要加入一个ID字段
    你可以使用触发器:
    主要语句可以这样,不知对否,你自己去试,对了给我加分。
    select @YE=(SUM(收入)-SUM(支出)) FROM TABLE
    SELECT @ID=ID,@SL=收入,@ZC=支出 FROM INSERTED
    UPDATE TABLE SET 余额=@YE+@SL-@ZC WHERE ID=@ID 
      

  2.   

    不止收入,支出两个字段,还有ID,TDAY(收支日期),CGYID(收支种类)等等,至于JCQ的回答我想应该是不正确的,你有没有考虑到,当用ID号排序和用日期排序得到的余额值是不同的,即余额值是依赖行的
      

  3.   

    我是让你写一个INSERT的触发器,当插入一条新记录时,求出原有的
      

  4.   

    我是让你写一个INSERT的触发器,当插入一条新记录时,求出原有的余额,在加上新记录的收入减去新记录的支出,不就是该新记录的余额吗?如果有差,可能要把:SET 余额=@YE+@SL-@ZC改为:SET 余额=@YE就可以了
      

  5.   

    在写触发器的时候,你最好使用游标。我有一个没有使用游标的例子,你可以试一下:CREATE TRIGGER TEST ON [TABLE1] 
    FOR INSERT
    AS
    DECLARE @YE INT,@SL INT,@ZC INT,@ID VARCHAR
    SELECT @ID=ID,@SL=SL,@ZC=ZC FROM INSERTED
    SELECT @YE=(SUM(SL)-SUM(ZC)) FROM TABLE1
    UPDATE TABLE1 SET YE=@YE WHERE ID=@ID
      

  6.   

    select a.收入,a.支出,(select sum(收入)-sum(支出) from 表 where TDAY<= a.TDAY)
    form 表 a
    order by a.TDAY你试试,我试过,成功。