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
  • 相关阅读:
    自签证书的创建与导入
    Linux常用命令
    JS数据类型
    call和apply
    css浮动Float
    vue 列表进入详情后,返回保持原位置
    vue-cli2升级为vue-cli3
    html2canvas使用中的小问题
    jquery点击空白处关闭弹窗
    template.js中template模板中onclick传参
  • 原文地址:https://www.cnblogs.com/star-studio/p/4766095.html
Copyright © 2011-2022 走看看