分享

SQL SERVER数据库中的游标

 Hermanli 2011-03-17
 declare opener Cursor for   
         select CRM_WL_MaterielBatchId,CRM_WL_MaterielListId,Psort,Date,Name from #temp
         where Date>=@BeginDate  order by CRM_WL_MaterielListId,Date,Name
    open  opener
    fetch next from opener into @CRM_WL_MaterielBatchId,@CRM_WL_MaterielListId,@Psort,@Date,@Code
 
    while(@@fetch_status=0)--循环开始
begin
        set @StartNumber=(select isnull(sum(StartNumber),0)  from #b where  CRM_WL_MaterielBatchId=@CRM_WL_MaterielBatchId  and CRM_WL_MaterielListId=@CRM_WL_MaterielListId)
       if(@Psort='借(收入)方')
        begin
set @In=(select isnull(sum(Number),0) from #temp where Psort='借(收入)方'
and Date<=@Date and CRM_WL_MaterielBatchId=@CRM_WL_MaterielBatchId and Name <=@Code
and CRM_WL_MaterielListId=@CRM_WL_MaterielListId )

set @Out=(select isnull(sum(Number),0)  from #temp where Psort='贷(支出)方'
and Date<=@Date and CRM_WL_MaterielBatchId=@CRM_WL_MaterielBatchId 
        and Name  in(select Name from #temp1)
and CRM_WL_MaterielListId=@CRM_WL_MaterielListId )
        end
       else
         begin

  set @In=(select isnull(sum(Number),0) from #temp where Psort='借(收入)方'
and Date<=@Date and CRM_WL_MaterielBatchId=@CRM_WL_MaterielBatchId 
        and Name  in(select Name from #temp1)
and CRM_WL_MaterielListId=@CRM_WL_MaterielListId )

set @Out=(select isnull(sum(Number),0)  from #temp where Psort='贷(支出)方'
and Date<=@Date and CRM_WL_MaterielBatchId=@CRM_WL_MaterielBatchId and Name <=@Code
and CRM_WL_MaterielListId=@CRM_WL_MaterielListId )
         end
         
       insert into #temp1
select @Date,@Code,Remark,
@StartNumber+@In-@Out,CostPrice,(@StartNumber+@In-@Out)*CostPrice ,GroupName,@CRM_WL_MaterielBatchId,
@CRM_WL_MaterielListId,'结存' from #temp where 
CRM_WL_MaterielBatchId=@CRM_WL_MaterielBatchId and Psort=@Psort and Date=@Date
and CRM_WL_MaterielListId=@CRM_WL_MaterielListId and Name =@Code
     
    fetch next from opener into @CRM_WL_MaterielBatchId,@CRM_WL_MaterielListId,@Psort,@Date,@Code
    end --循环结束     
close opener--关闭游标
deallocate opener

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约