Declare @i,@k int
set @i=0
set @k=0
update 表  set 小序號=@i,@i=(case when @k=單據號  then @i+1 else 1  end),
  @k=單據號

解决方案 »

  1.   

    Declare @i int,@k int
    set @i=0
    set @k=0
    update 表  set 小序號=@i,@i=(case when @k=單據號  then @i+1 else 1  end),
      @k=單據號
      

  2.   

    下面是一個例子
    Create  Table  TB(單據號  int,小序號  int  null)
    insert into TB
    select 1,null  union  all select 1,null   union all
    select 1,null  union all select 2,null   union all
    select 2,null  union all select 3,null   union all
    select 3,null union all select 3,null  union  all
    select 3,null  
    --------------------下面是完成語句-------------------
    Declare @i int ,@k int
    set @i=0
    set @k=0
    update tb  set 小序號=@i,@i=(case when @k=單據號  then @i+1 else 1  end),
      @k=單據號
    ---------------------結束-------------
    select  *  from tb
    ---------查結果--------
      

  3.   

    --------怎麼說有錯呢,你直接把下面的語句拷貝到sql中執行不就知道了
    ----------數據都是你提供的--------
    Create  Table  TB(單據號  int,小序號  int  null)
    insert into TB
    select 1,null  union  all select 1,null   union all
    select 1,null  union all select 2,null   union all
    select 2,null  union all select 3,null   union all
    select 3,null union all select 3,null  union  all
    select 3,null  
    --------------------下面是完成語句-------------------
    Declare @i int ,@k int
    set @i=0
    set @k=0
    update tb  set 小序號=@i,@i=(case when @k=單據號  then @i+1 else 1  end),
      @k=單據號
    ---------------------結束-------------
    select  *  from tb
    ---------查結果--------drop table tb  --刪除測試
      

  4.   

    ----------我的是繁體系統,我把字段名改成英文的你試試
    Create  Table  TB(bb  int,cc  int  null)
    insert into TB
    select 1,null  union  all select 1,null   union all
    select 1,null  union all select 2,null   union all
    select 2,null  union all select 3,null   union all
    select 3,null union all select 3,null  union  all
    select 3,null  
    --------------------下面是完成語句-------------------
    Declare @i int ,@k int
    set @i=0
    set @k=0
    update tb  set cc=@i,@i=(case when @k=bb  then @i+1 else 1  end),
      @k=bb
    ---------------------結束-------------
    select  *  from tb
    ---------查結果--------drop table tb
      

  5.   

    你隻需要這段話進行套你的表和字段,如果測試成功的話
    Declare @i int ,@k int
    set @i=0
    set @k=0
    update tb  set cc=@i,@i=(case when @k=bb  then @i+1 else 1  end),
      @k=bb