select lksj,xmmc,identity(int,1,1) as id into # from 表 group by lksj,xmmc update a set a.number=replace(str(id,4,0),' ','0') from 表 a,# b where a.lksj=b.lksj
and a.xmmc=b.xmmc

解决方案 »

  1.   

    ---找出相邻两条记录
    select a.xmbh,a.lksj,a.xmmc,a.number into #tmp from tablename a,tablename b
    where   (a.xmbh+1=b.xmbh) or (a.xmbh-1=a.xmbh) or (left(a.xmmc,2)+right(a.xmmc,len(a.xmmc)-3)+1)) or 
    (left(a.xmmc,2)+right(a.xmmc,len(a.xmmc)-3)-1))
      

  2.   

    9N4022    2005-1-14 液压绞车自动张紧装置                  null  
    9NS4023   2005-1-14 液压绞车自动张紧装置                  null
    9C5012    2005-1-11 核子称自动配煤系统                     null 
    9CS5013   2005-1-11 核子称自动配煤系统                     null 
    9C5010    2005-1-11 夹河三河尖皮带电控系统                 null 
    9CS5011   2005-1-11 夹河三河尖皮带电控系统                 null 
     搂住的数据上分析好像可以不用考虑xmbh
     那样的话一楼的就可以了.
      

  3.   

    为什么数据记录大于1000就不能更新呢?
    select lksj,xmmc,identity(int,1,1) as id into #b from tempzhkfp  group by lksj,xmmc update tempzhkfp set tempzhkfp.number=replace(str(id,4,0),' ','0') from tempzhkfp ,# b where tempzhkfp.lksj=b.lksj
    and (tempzhkfp.xmmc=b.xmmc)
    ..............................结果显示(所影响的行数为 1604 行)(所影响的行数为 0 行)
    也就是说没有把数据更新到tempzhkfp表的number中,为什么会出现这样的情况呢,
    把replace(str(id,4,0),' ','0') 改成replace(str(id,6,0),' ','0')还是不行
      

  4.   

    select lksj,xmmc,identity(int,1,1) as id into #b from zhklkp94 group by lksj,xmmc 
    update zhklkp94 set zhklkp94.number=replace(str(id,4,0),' ','0') from zhklkp94,#b where zhklkp94.lksj= #b.lksj
    and zhklkp94.xmmc= #b.xmmc该问题解决了,谢谢各位高手