while @count >=0 
该为while @count>=1

解决方案 »

  1.   

    while @count >=0 
    该为while @count>=1试试
      

  2.   

    while @@fetch_status=0/*fetch_status : 0 successful 1: fail -2 :missing*/
      

  3.   

    It's ok!!
    thank you very much!
    but it have another error:
    Server: Msg 16930, Level 16, State 1, Line 17
    The requested row is not in the fetch buffer.
    The statement has been terminated.
      

  4.   

    分析你的代码,你的程序可以不用游标,假设你的表中有一个关键字是按时间进行
    如果没有,你可以用带自增长列的临时表序列化表结构为: 现金日报表(收入, 支出, 余额,发生时间)update 现金日报表 现金日报表.余额=a.余额
            from 现金日报表 ,(
                     select Count(a1.收入-a1.支出) "余额",a2.发生时间
                          from 现金日报表 a1,现金日报表a2
                          where a1.发生时间<=a2.发生时间
                          group by a2.发生时间
                     ) a
            where 现金日报表.发生时间=a.发生时间
      

  5.   

    1.不要用@COUNT做循环条件,改为用'WHILE @@FATCH_STATUS=0'
    2.因为你用了SCROLL定义游标,默认的可更新选项无效,要在定义游标的最后加上FOR UPDATE选项来更新指定数据
    3.还不行的话,把'WHERE CURRENT OF MY_CURR'改为
      WHERE  收入=@INCOME AND 支出=@OUT AND 余额 =REMAINDER
      

  6.   

    我写误了一个地方,Count(a1.收入-a1.支出) 应该是 sum(a1.收入-a1.支出)
    第一条也是起作用的,