zoukankan      html  css  js  c++  java
  • 多条单据,每个单据多条明细,循环时,判断出每个单据的开始

     适用多条单据,每个单据多条明细,要对每个单据的明细,进行业务处理。循环数据,识别出每个单据的第一条明细。

    --create table ABC
    --(
    --    A int,
    --    B int,
    --    C int
    --)
    --insert ABC select '1','20',null
    --insert ABC select '1','10',null
    --insert ABC select '2','15',null
    --insert ABC select '2','5',null
    
    
    if exists(select * from sysobjects where id=object_id(N'tempdb..#ttt') ) 
    drop table #ttt 
    DECLARE @sid INT,@sno INT,@preid int,@curid int,@ccid int,@ctotal int
    select IDENTITY(int,1,1) as fid,* into #ttt from ABC order by A asc, B desc
    
    SET @sno=@@rowcount
    SET @sid=1
    set @preid=0
    set @ctotal=0
    WHILE @sid<=@sno
    BEGIN
    select @curid=A from #ttt where fid=@sid
    select @ccid=B from #ttt where fid=@sid
    if @preid<>@curid
    begin
    set @ctotal=@ccid
    set @preid=@curid
    end
    else
    begin
    set @ctotal=@ctotal-@ccid
    end
    update #ttt set c=@ctotal where fid=@sid
    SET @sid=@sid+1
    END
    select * from #ttt
    drop table #ttt
    fid A B C
    1 1 20 20
    2 1 10 10
    3 2 15 15
    4 2 5 10
  • 相关阅读:
    LOD
    优化
    Shader
    资源:创建 加载 存储 使用 ---- 热更新
    内存
    分辨率自适应
    基础知识 索引
    【转】七年IT经验的七个总结
    c#
    绘制原理
  • 原文地址:https://www.cnblogs.com/star-studio/p/4766095.html
Copyright © 2011-2022 走看看