我补充一下,在每一个table中的ida2a2都是唯一的标示

解决方案 »

  1.   

    select aa.*
     from (select a.* from au3.dqabaseline a ,
                    au3.dqamilestone b,
                    au3.dqabaselinemaster c
    where  a.ida3b10=b.ida2a2
    and a.ida3masterreference=c.ida2a2
    and c.projectid='M190EN02 V.2 (L8-ODF)' 
    order by a.VALUEA2B2VERSIONINFO desc) aa
    where aa.rownum<2 
      

  2.   

    但是呢,要是我的条件是c.projectid like 'M%'的话,好像就不好用了!!
      

  3.   

    select a.* from au3.dqabaseline a ,
                    au3.dqamilestone b,
                    au3.dqabaselinemaster c
    where  a.ida3b10=b.ida2a2
    and a.ida3masterreference=c.ida2a2
    and c.projectid='M190EN02 V.2 (L8-ODF)'
    and a.VALUEA2B2VERSIONINFO= (
        select max(a.VALUEA2B2VERSIONINFO)
        from au3.dqabaseline a ,
                    au3.dqamilestone b,
                    au3.dqabaselinemaster c
        where  a.ida3b10=b.ida2a2
        and a.ida3masterreference=c.ida2a2
        and c.projectid='M190EN02 V.2 (L8-ODF)')
      

  4.   

    baojianjun(包子) 和我写的是一样的,我就是觉得他的效率不好,所以问问有没有好的select,but thank you all the same
      

  5.   

    zgh2003(世纪飞扬) 写的冬冬我运行的时候出错,说是user.table.column,table.column栏位无效,什么原因?
      

  6.   

    回复人: HeavenHe() ( ) 信誉:100  2003-12-22 16:54:00  得分:0 
     
     
      但是呢,要是我的条件是c.projectid like 'M%'的话,好像就不好用了!!
    ----------------------------------------------------------------------- 
     
    呵呵,我觉得只要你的这句
    select a.* from au3.dqabaseline a ,
                    au3.dqamilestone b,
                    au3.dqabaselinemaster c
    where  a.ida3b10=b.ida2a2
    and a.ida3masterreference=c.ida2a2
    and c.projectid='M190EN02 V.2 (L8-ODF)' 
    筛选正确,应该还是没有问题地,因为我的这句只是根据你的结果作了一次排序操作,
    然后取一条记录。
      

  7.   

    select d.* from au3.dqabaseline d,(
        select a.ida3b10 id,max(a.VALUEA2B2VERSIONINFO) max_v
        from au3.dqabaseline a ,
                    au3.dqamilestone b,
                    au3.dqabaselinemaster c
        where  a.ida3b10=b.ida2a2
        and a.ida3masterreference=c.ida2a2
        and c.projectid='M190EN02 V.2 (L8-ODF)'
        group a.ida3b10) e
    where d.VALUEA2B2VERSIONINFO=e.max_v
    and   a.ida3b10=e.id
    and   rownum=1
      

  8.   

    select * from 
    (select a.*,row_number() over(order by VALUEA2B2VERSIONINFO desc) rm 
    from au3.dqabaseline a ,au3.dqamilestone b,au3.dqabaselinemaster c
    where  a.ida3b10=b.ida2a2
    and a.ida3masterreference=c.ida2a2
    and c.projectid='M190EN02 V.2 (L8-ODF)')
    where rm=1
      

  9.   

    zgh2003(世纪飞扬) 我知道你的方法,但是要是用like的话,就会查出不同的结果,排序只取一个显然是不合要求的啊
      

  10.   

    baojianjun(包子) 我在表的查询中不能用rownum,不知道为什么!
      

  11.   

    beckhambobo(beckham),未启用特性:OLAP Window Functions,这个怎么办啊?
      

  12.   

    select * from dqabaseline 
    where ida2a2 in (
                 select max(a.ida2a2) ida2a2 from au3.dqabaseline a ,au3.dqamilestone b,au3.dqabaselinemaster c
                 where a.ida3b10=b.ida2a2
                 and a.ida3masterreference=c.ida2a2
                 and c.projectid like 'M190EN02%'
                 group by a.ida3masterreference)
    这个是我写的,感觉比较烂,请大家指正!
      

  13.   

    select d.* from au3.dqabaseline d,(
        select a.ida3b10 id,max(a.VALUEA2B2VERSIONINFO) max_v
        from au3.dqabaseline a ,
                    au3.dqamilestone b,
                    au3.dqabaselinemaster c
        where  a.ida3b10=b.ida2a2
        and a.ida3masterreference=c.ida2a2
        and c.projectid='M190EN02 V.2 (L8-ODF)'
        group a.ida3b10) e
    where d.VALUEA2B2VERSIONINFO=e.max_v
    and   d.ida3b10=e.id
    and   rownum=1
    上次有點錯誤,不好意思,rownum=1是為了防止多行返回,你可以先不寫的!
      

  14.   

    beckhambobo(beckham) 的方法很好的。排序字段有索引的话,会很快啊。试试看啊。
      

  15.   

    baojianjun(包子)写的还是有问题的,因为ida3b10是不同的,所以group by出来的结果还是5个;另外关于rownum=1,如果我用的查询条件是like的话就不对了!
    thank you all the same
      

  16.   

    row_number() over(order by VALUEA2B2VERSIONINFO desc) rm 
    这个东西是什么作用?
      

  17.   

    select aa.*
     from (select a.* from au3.dqabaseline a ,
                    au3.dqamilestone b,
                    au3.dqabaselinemaster c
    where  a.ida3b10=b.ida2a2
    and a.ida3masterreference=c.ida2a2
    and c.projectid='M190EN02 V.2 (L8-ODF)' 
    order by a.VALUEA2B2VERSIONINFO desc) aa
    where aa.rownum<2 
      

  18.   

    为什么没人用like 'M190EN%'写一个呢?