我的一个SQL查询,我目前的结果如下 所有ID  初始值都是1 ID---newvalue----update 
1-------5---------2008-9-10 10:10:50 
1-------6---------2008-9-10 19:10:50 
2-------2---------2008-9-10 12:19:59 
3-------4---------2008-9-10 15:10:10 
3-------5---------2008-9-10 20:08:40 
ID 1在19:10:50 把值更改为了6 ID 2只改了一次 ID 3在20:08:40 把值更改为了5 
我想最终查出的效果是同一个ID 在 当天 最后 一次修改只要是6 那就把这个ID排除,同时只查出ID最后一次修改的值 那最终效果应该是 
2------2-----2008-9-10 12:19:59 
3------5-----2008-9-10 20:08:40 
就这么2条记录,有什么关键字 或方法能达到这要求~~?
我的是MYSQL数据库,我知道这里不是MYSQL,不过发现这个版块的理念比较强大,能用MYSQL的方式解决最好了~~

解决方案 »

  1.   

    select * from tab a
    where not exists (
    select * from tab
    where id=a.id and update>a.update
    )
    and newvalue<>6
      

  2.   

    create table #I
    (
    ID int,
    newvalue int,
    updatetime datetime
    )
    insert into #I 
    select 1,5,'2008-9-10 10:10:50' union all 
    select 1,6,'2008-9-10 19:10:50' union all 
    select 2,2,'2008-9-10 12:19:59' union all
    select 3,4,'2008-9-10 15:10:10' union all
    select 3,5,'2008-9-10 20:08:40' 
    select * from #I where updatetime in (
    select MAX(updatetime) from #I group by id) and newvalue<>6
    drop table #I
      

  3.   

    ID---newvalue----update 
    1-------5---------2008-9-10 10:10:50 
    1-------6---------2008-9-10 19:10:50 
    2-------2---------2008-9-10 12:19:59 
    3-------4---------2008-9-10 15:10:10 
    3-------5---------2008-9-10 20:08:40 
    这不是一张表  是我4张表查询后的结果
      

  4.   


    update  需要加[],即[update]
      

  5.   

    issue: 
    ID---KEY---createtime---updatetime----所属作业ID 
    1----k1----2008/8/7-----2008/8/7------zy4 
    2----k2----2008/8/7-----2008/8/7------zy4 
    3----k3----2008/8/7-----2008/8/7------zy4 
    4----k4----2008/8/7-----2008/8/7------zy3 
    13----k4----2008/8/7-----2008/8/7------zy4
    14----k4----2008/8/7-----2008/8/7------zy1 
    swork: 
    ID---KEY---作业名称---布置者 
    zy1--k5----XX作业----XX老师 
    zy2--k6----SS作业----TT老师 
    zy3--k7----JJ作业----QQ老师 
    zy4--k8----OO作业----UU老师 
    changegroup: 
    ID--------问题ID-------修改者---------修改时间 
    1001-------1----------TT老师 --------2008-8-8 08:15:08
    1002-------2----------TT老师 --------2008-8-8 09:50:01
    1003-------3----------TT老师 --------2008-8-8 10:23:59
    1004-------13----------QQ老师 --------2008-8-8 15:10:18changeitem:
    ID--------groupid-----------field-------oldvalue---------newvalue
    1----------1001---------------A------------1---------------4
    2----------1001---------------B------------TT--------------TR
    3----------1002---------------A------------1---------------6
    4----------1003---------------A------------1---------------3
    5----------1003---------------A------------3---------------2
    6----------1004---------------A------------1---------------5
    我的SQLselect i.ID,m.newvalue,c.修改时间from issue i,changeitem m,changegroup p,swork swhere m.field='A'AND p.ID=m.groupidAND s.ID=i.所属作业IDAND i.ID=p.问题IDAND s.作业名称='OO作业'AND date_format(c.修改时间,'%Y-%m-%e')='2008-8-8'再麻烦看看.....................
      

  6.   


    DECLARE  @DataTable TABLE
    (
    ID INT,
    newvalue VARCHAR(100),
    [update] datetime
    )INSERT @DataTable
    SELECT 1, '5', '2008-9-10 10:10:50'
    UNION ALL SELECT 1, '6', '2008-9-10 10:10:50'
    UNION ALL SELECT 2, '2', '2008-9-10 12:19:59'
    UNION ALL SELECT 3, '4', '2008-9-10 15:10:10'
    UNION ALL SELECT 3, '5', '2008-9-10 20:08:40'SELECT a.* FROM @DataTable a
    JOIN
    (
    SELECT ID, MAX([update]) AS [update] FROM @DataTable 
    WHERE ID NOT IN(SELECT ID FROM @DataTable WHERE newvalue = '6')
    GROUP BY ID
    )b ON a.ID = b.ID AND a.[update] = b.[update]