Time1                          Time2              PKG     Count  
2007-07-13 09:45:23.827 2007-07-16 00:00:00.000 SO-8 44
2007-07-13 09:45:23.827 2007-07-17 00:00:00.000 SO-8 31
2007-07-13 09:45:23.827 2007-07-18 00:00:00.000 SO-8 29
2007-07-14 09:45:23.827 2007-07-19 00:00:00.000 SO-8 34
2007-07-14 09:45:23.827 2007-07-20 00:00:00.000 SO-8 37
2007-07-14 09:45:23.827 2007-07-21 00:00:00.000 SO-8 26
2007-07-15 09:45:23.827 2007-07-23 00:00:00.000 SO-8 19
2007-07-15 09:45:23.827 2007-07-24 00:00:00.000 SO-8 23
2007-07-15 09:45:23.827 2007-07-25 00:00:00.000 SO-8 17
2007-07-16 09:45:23.827 2007-07-26 00:00:00.000 SO-8 19
2007-07-16 09:45:23.827 2007-07-27 00:00:00.000 SO-8 55
2007-07-16 09:45:23.827 2007-07-28 00:00:00.000 SO-8 11
 Time1 和 Time2 已经按由小到大排序, 我现在想取出以下几条数据,请问该如何写?
2007-07-13 09:45:23.827 2007-07-16 00:00:00.000 SO-8 44
2007-07-14 09:45:23.827 2007-07-19 00:00:00.000 SO-8 34
2007-07-15 09:45:23.827 2007-07-23 00:00:00.000 SO-8 19
2007-07-16 09:45:23.827 2007-07-26 00:00:00.000 SO-8 19

解决方案 »

  1.   

    每天的第一条?select * from tablename a
    where not exists (
    select 1 from tablename
    where time1=a.time1
    and time2>a.time2
    )
      

  2.   

    搞反了select * from tablename a
    where not exists (
    select 1 from tablename
    where time1=a.time1
    and time2<a.time2
    )
      

  3.   

    select * from 表 as a where time2= (select max(time2) from 表 where time1=a.time1)
    order by time1
      

  4.   

    --方法一
    Select * From 表 A Where Not Exists(Select Time2 From 表 Where Time1 = A.Time1 And Time2 < A.Time2)--方法二
    Select * From 表 A Where Time2 = (Select Min(Time2) From 表 Where Time1 = A.Time1)--方法三
    Select A.* From 表 A 
    Inner Join
    (Select Time1, Min(Time2) As Time2 From 表 Group By Time1) B
    On A.Time1 = B.Time1 And A.Time2 = B.Time2