现在数据库结构: time               data1          
2009-10-19 0:04 4286802.406
2009-10-19 0:09 4275484.094
2009-10-19 0:14 4275499.875
2009-10-19 0:19 4275515.656
2009-10-19 0:24 4275528.375
2009-10-19 0:29 4275544
2009-10-19 0:35 4275559.906
2009-10-19 0:40 4275575.625
2009-10-19 0:45 4275591.281
2009-10-19 0:50 4275607.125
2009-10-19 9:43 4277201.344
2009-10-19 9:48 4277217.281
2009-10-19 9:53 4277233.063
2009-10-19 9:58 4277249.406
2009-10-19 10:03 4277265.438
2009-10-19 10:08 4277282.094
2009-10-19 10:13 4277295.25
2009-10-19 10:33 4277360.219
2009-10-19 10:38 4277376.219
2009-10-19 10:43 4277392.531
2009-10-19 10:48 4277408.625
2009-10-19 10:53 4277421.344
2009-10-19 10:58 4277437.281
2009-10-19 11:03 4277453.188
2009-10-19 11:08 4277469.125
2009-10-19 11:13 4277485.188
2009-10-19 11:18 4277500.938
2009-10-19 11:23 4277513.594
2009-10-19 11:28 4277529.281
2009-10-19 11:33 4277545.125
2009-10-19 11:38 4277560.875
2009-10-19 11:43 4277576.906
2009-10-19 11:48 4277591.5
2009-10-19 11:53 4277603.969
2009-10-19 11:58 4277617.094
2009-10-19 12:03 4277632.156
2009-10-19 12:08 4277647.5
2009-10-19 12:13 4277662.906
2009-10-19 12:18 4277678.719
2009-10-19 12:23 4277694.594
2009-10-19 12:28 4277707.25
2009-10-19 12:33 4277723.125
2009-10-19 12:39 4277742.031
2009-10-19 12:44 4277754.594
2009-10-19 12:49 4277770.281
2009-10-19 12:54 4277786.063
2009-10-19 12:59 4277802.125
2009-10-19 13:04 4277818.156
2009-10-19 13:09 4277834.281
2009-10-19 13:14 4277846.469
2009-10-19 13:19 4277861.75
2009-10-19 13:24 4277877.156
2009-10-19 13:29 4277892.656
2009-10-19 13:34 4277907.844
2009-10-19 13:39 4277923.125
2009-10-19 13:44 4277937.875
2009-10-19 13:49 4277952.719
2009-10-19 13:54 4277964.625
2009-10-19 13:59 4277979.594
2009-10-19 14:04 4277994.938
2009-10-19 14:09 4278010.125
2009-10-19 14:14 4278025.625
2009-10-19 14:19 4278040.594
2009-10-19 14:24 4278052.906
2009-10-19 14:29 4278068.469
2009-10-19 14:34 4278084.281
2009-10-19 14:39 4278100
2009-10-19 14:44 4278115.594
2009-10-19 14:49 4278131.094
2009-10-19 14:54 4278146.719
2009-10-19 14:59 4278162.469
2009-10-19 15:04 4278174.656
2009-10-19 15:09 4278187.469
2009-10-19 15:14 4278204
2009-10-19 15:19 4278219.875
2009-10-19 15:24 4278234.563
2009-10-19 15:29 4278249.438
2009-10-19 15:34 4278262.031
2009-10-19 15:40 4278281.344
2009-10-19 15:45 4278294.219
2009-10-19 15:50 4278310.156
2009-10-19 15:55 4278326
2009-10-19 16:00 4278341.531
2009-10-19 16:05 4278356.875
2009-10-19 16:10 4278371.5
2009-10-19 16:15 4278384.531
2009-10-19 16:20 4278400.469
2009-10-19 16:25 4278416.375
2009-10-19 16:30 4278432.594
2009-10-19 16:35 4278448.844
2009-10-19 16:40 4278465.219
2009-10-19 16:45 4278481.313
2009-10-19 16:50 4278494.375
2009-10-19 16:55 4278510.438
2009-10-19 17:00 4278526.25
2009-10-19 17:05 4278541.844
2009-10-19 17:10 4278554.781
2009-10-19 17:15 4278574.219
2009-10-19 17:20 4278587.281
2009-10-19 17:25 4278603.438
2009-10-19 17:30 4278619.5
2009-10-19 17:35 4278635.438
2009-10-19 17:40 4278651.531
2009-10-19 17:45 4278667.625
2009-10-19 17:50 4278683.656
2009-10-19 17:55 4278699.813
2009-10-19 18:00 4278712.75
2009-10-19 18:05 4278728.813
2009-10-19 18:10 4278744.594
2009-10-19 18:15 4278757.5
2009-10-19 18:20 4278771.5
2009-10-19 18:25 4278787.375
2009-10-19 18:30 4278800.281
2009-10-19 18:35 4278816.25
2009-10-19 18:41 4278834.938
2009-10-19 18:46 4278847.25
2009-10-19 18:51 4278861.906
2009-10-19 18:56 4278874.281
2009-10-19 19:01 4278885.563
2009-10-19 19:06 4278897.25
2009-10-19 19:11 4278910.406
2009-10-19 19:16 4278922.375
2009-10-19 19:21 4278934.688
2009-10-19 19:26 4278949.438
2009-10-19 19:31 4278962.563
2009-10-19 19:36 4278975.75
2009-10-19 19:41 4278990.594
2009-10-19 19:46 4279005.031
2009-10-19 19:51 4279019.938
2009-10-19 19:56 4279032.438
2009-10-19 20:01 4279048.188
2009-10-19 20:06 4279063.938
2009-10-19 20:11 4279079.469
2009-10-19 20:16 4279095.125
2009-10-19 20:21 4279111.156
2009-10-19 20:26 4279124
2009-10-19 20:31 4279140.094
2009-10-19 20:36 4279155.344
2009-10-19 20:41 4279169.844
2009-10-19 20:46 4279185.875
2009-10-19 20:51 4279201.625
2009-10-19 20:56 4279217.125
2009-10-19 21:01 4279232.344
2009-10-19 21:06 4279244.5
2009-10-19 21:11 4279260.031
2009-10-19 21:16 4279276.375
2009-10-19 21:21 4279292.75
2009-10-19 21:26 4279309.031
2009-10-19 21:31 4279325.25
2009-10-19 21:36 4279341.5
2009-10-19 21:42 4279357.75
2009-10-19 21:47 4279370.875
2009-10-19 21:52 4279387.344
2009-10-19 21:57 4279403.844
2009-10-19 22:02 4279419.906
2009-10-19 22:07 4279436.25
2009-10-19 22:12 4279452.781
2009-10-19 22:17 4279466.125
2009-10-19 22:22 4279482.688
2009-10-19 22:27 4279499.281
2009-10-19 22:32 4279499.281
2009-10-19 22:37 4279531.531
2009-10-19 22:42 4279547.813
2009-10-19 22:47 4279562
2009-10-19 22:52 4279578.438
2009-10-19 22:57 4279591.281
2009-10-19 23:02 4279607.563
2009-10-19 23:07 4279623.781
2009-10-19 23:12 4279639.969
2009-10-19 23:17 4279656.156
2009-10-19 23:22 4279672.375
2009-10-19 23:27 4279685.344
2009-10-19 23:32 4279701.625
2009-10-19 23:37 4279718.031
2009-10-19 23:42 4279734.313
2009-10-19 23:47 4279750.656
2009-10-19 23:52 4279767.031
2009-10-19 23:57 4279783.344
2009-10-19 0:04 4286802.406
本来应该 后一个时间的数据比前一个时间的数据大,但是现在出现了小的情况 
需要把小的记录删除  求一个循环结构   原问题 :http://topic.csdn.net/u/20090914/14/ae1c03c3-5425-48c4-ac76-c7e89e85be90.html但 发现搜出来的结果不符合要求,原因有可能是 时间排序有问题。或者还有其它我没有发现的问题
请各位高手  帮忙再解决一下

解决方案 »

  1.   

    DELETE TB FROM TB T WHERE EXISTS(SELECT 1 FROM TB WHERE TIME<T.TIME AND DATA1>T.DATA1)--有什么问题?
      

  2.   

    加一列子增列
    delete from tb t2 where exists(select 1 from tb t1 where t1.id+1=t2.id and t1.data>t2.data)
      

  3.   

    我用这个SQL 搜出的是几乎所有的数据我觉得应该是  时间没有按照 顺序排造成的,有什么好的解决办法吗?
      

  4.   


    if object_id('tb') is not null drop table tb
    go
    create table tb(time datetime, data1 int)
    insert tb select  
    '2009-10-19 0:04', 4286802.406 union all select
    '2009-10-19 0:09', 4275484.094 union all select
    '2009-10-19 0:14', 4275499.875 union all select
    '2009-10-19 0:19', 4275515.656 union all select
    '2009-10-19 0:24', 4275528.375 union all select
    '2009-10-19 0:29', 4275544 union all select
    '2009-10-19 0:35', 4275559.906 union all select
    '2009-10-19 0:40', 4275575.625 union all select
    '2009-10-19 0:45', 4275591.281 
    if exists(select 1 from tb a,tb b where a.time>b.time and a.data1<b.data1)
    delete a
    from tb a,tb b
    where a.time>b.time and a.data1<b.data1
    select * from tb time                    data1
    ----------------------- -----------
    2009-10-19 00:04:00.000 4286802           --第一条记录最大,所以最好只有它(1 行受影响)
      

  5.   

    还要补充一个问题哦,呵呵!
    我要比较 自己选的时间段里面的 值 怎么弄?
    我写的SQL语句:DELETE TB FROM TB T WHERE EXISTS(SELECT 1 FROM TB WHERE TIME<T.TIME AND DATA1>T.DATA1 and time>'2009-10-19' and time<'2009-10-20')可是结果 连2009-10-15 的数据都出来的,
    高手能不能 告诉我是怎么回事
      

  6.   

    我试了一下if object_id('tb') is not null drop table tb
    go
    create table tb(time datetime, data1 int)
    insert tb select  
    '2009-10-19 0:04', 4286802.406 union all select
    '2009-10-19 0:09', 4275484.094 union all select
    '2009-10-19 0:14', 4275499.875 union all select
    '2009-10-19 0:19', 4275515.656 union all select
    '2009-10-19 0:24', 4275528.375 union all select
    '2009-10-19 0:29', 4275544        union all select
    '2009-10-19 0:35', 4275559.906 union all select
    '2009-10-19 0:40', 4275575.625 union all select
    '2009-10-19 0:45', 4275591.281 
    DELETE TB FROM TB T WHERE EXISTS(SELECT 1 FROM TB WHERE TIME<T.TIME AND DATA1>T.DATA1)--(小F)的--js_szy的代码
    if exists(select 1 from tb a,tb b where a.time>b.time and a.data1<b.data1)
    delete a
    from tb a,tb b
    where a.time>b.time and a.data1<b.data1
    select * from tb 结果是一样的,我没有看出什么来啊