补充一下,这个表的记录有很多条(万条以上),
ID相同的记录有几百条而且ID从1到99都有

解决方案 »

  1.   

    --如果有索引先删除索引
    --如果有触发器先禁用触发器--设置恢复模型为最小日志模式
    alter database 数据库名 set recovery simple
    go--删除重复记录
    delete from 表 t
    where exists(select 1 
                   from 表 
                      where ID=t.ID 
                            and value=t.value
                            and [day]<t.[day])--更新day序列
    update t
    set [day]=0.10+0.01*(select count(1) from 表 where ID=t.ID and value<=t.value)
    from 表 t--还原数据库恢复模型
    alter database 数据库名 set recovery full
    go
      

  2.   

    你是要求
    id       value     day 
    1         20       0.11
    2         40       0.11
    1         30       0.12
    2         60       0.12
    2         50       0.14
    这样的结果吗??
      

  3.   

    --try it
    select id,value,min(day) day into # from tablename group by id,value order by id,day
    truncate table tablename
    insert into #
      

  4.   

    这方面的贴子太多了,建议你先查询一下,也许会更快的解决你的问题 。 vivianfdlpw() 就很经典了
      

  5.   

    回复人: wxwx110(无敌大馒头) ( ) 信誉:100  2005-9-14 15:53:05  得分: 0  
     
     
       
    补充一下,这个表的记录有很多条(万条以上),
    ID相同的记录有几百条而且ID从1到99都有---这样用语句效率不高!
    建议用实际表(临时)来剔除重复的,然后再update day这个字段