比如有一个表如下
时间   id  列3
r1    id1  XXX
R2    id2  XXX
R3    id1  XXX求一个查询语句:取出所有所有符合以下条件的行:
时间大于某个时间time,如果Id相同的话则只取时间比较大的那一条如上表,如果ri,R2,R3都大于Time的话,并且r1大于R3,则结果如下:
时间  id  列3
r1   id1 XXX
R2   id2 XXX最好是能用在sqlite上的sql 语句  先谢谢各位大侠了

解决方案 »

  1.   

    select *
    from tb t
    where not exists(select 1 from tb where id=t.id and 时间>t.时间)
      

  2.   

    select t.* from 表 t where t.时间>time and not exists(select 1 from 表 where id=t.id and 时间>t.时间)
      

  3.   

    SELECT *
    FROM tb AS A
    WHERE 时间>@time
        AND NOT EXISTS(SELECT * FROM tb WHERE id=A.id AND 时间>A.时间 )
      

  4.   

    select * from tb a where not exists(select 1 from tb where id=a.id and 时间>a.时间) and 时间>某个时间time
      

  5.   


    declare @1 table(time datetime,id int,city varchar(20))
    insert into @1
    select '2009-03-01',1,'a' union all
    select '2009-03-10',1,'b' union all
    select '2009-03-10',2,'c'select city=(select city from @1 where time=max(b.time) and id=b.id),b.id,[time]=max(b.time) 
    from @1 b where b.time>'2009-01-01' group by b.id/*(3 行受影响)
    city                 id          time
    -------------------- ----------- -----------------------
    b                    1           2009-03-10 00:00:00.000
    c                    2           2009-03-10 00:00:00.000(2 行受影响)
    */