对 我们就是一个小的sp  涉及跟cp分账 

解决方案 »

  1.   

    扣费处理逻辑不清晰.分析业务处理流程,实际上可以这样的:
    1. 由于不到一个月的业务不处理,所以所有处理条件中应该包含:
       BeginTime>=dateadd(month,-1,getdate())2. 由于余额不足和用户取消业务都会从包月表中删除该记录,所以这个处理用一条T-SQL就可以完成
       delete from Account_UserMonth
       where BeginTime>=dateadd(month,-1,getdate()) --处理到一个月的业务
             and (DF_Account_UserMonth_IsNoMoney=0  ---余额不足,不知道判断条件是否正确?
                  or [Esc]-1 )                      --用户取消
      

  2.   

    3. 处理扣费部分--定义游标
    declare tb cursor local 
    for
    select .....
    from Account_UserMonth
    where BeginTime>=dateadd(month,-1,getdate()) --处理到一个月的业务
                                                 --因为已经预先删除了不满足扣费的数据,所以不再需要其他条件
    open tb           --打开游标
    fetch tb into @xx --循环游标
    while @@fetch_status=0
    begin
        .....扣费处理
       fetch tb into @xx --循环游标
    end
    close tb        --关闭游标
    deallocate tb   --释放游标