ALTER TABLE number ADD 班编号 int nulldeclare @a int,@b varchar(10)
set @a=1
update number set @a=case when class=@b then @a+1 else 1 end,@b=班编号,班编号=@a

解决方案 »

  1.   

    题外话啊,字段命名应该规范些,大家理解起来就容易多了,看起来也舒适
    SchoolId
    ClassId
    StudentId
    这样不是清楚些嘛大力已经解决了
    不过你的设计还需改进,表述起来不是很清晰
      

  2.   

    update number set idclass =(cast(aa.idschool as int)-bb.minId)
    from Number AA
    left join
    (select class,min(cast(idschool as int)) as minId from number group by class)BB
    on aa.class = bb.class