select item,price from tab_name where date=(select max(date) from tab_name group by item);

解决方案 »

  1.   

    SQL> select * from tb_test;ITEM   PRICE DRQ
    ---- ------- -----------
    AA      3.56 2004-3-26 9
    AA      3.45 2004-3-27 9
    BB      4.56 2004-3-26 9
    BB      5.56 2004-3-27 9
    BB      6.56 2004-3-21 9SQL> select item,price,drq from tb_test where drq in (select max(drq) from tb_test group by item);ITEM   PRICE DRQ
    ---- ------- -----------
    AA      3.45 2004-3-27 9
    BB      5.56 2004-3-27 9
      

  2.   

    select item,price from tb_test where (item,drq) in (select item,max(drq) from tb_test group by item);
      

  3.   

    不对吧~楼主是要求出
    ITEM   PRICE   
    AA      3.45   
    BB      2.12   
    不是把日期最近的数据求出~~~~
      

  4.   

    SQL> select item,price from c where price=3.46 or price=5.56;ITEM       PRICE
    ---------- ----------
    AA         3.46
    BB         5.56
      

  5.   

    hehe  ~~我理解错误了~~SORRY~~
      

  6.   

    上面的都有问题!
    看看这个对不??
    select a.item ,a.price 
    from a a,a b 
    where a.item = b.item and 
          a.date = max(b.date)
      

  7.   

    select item,price,drq from tb_test where drq in (select max(drq) from tb_test group by item);
      

  8.   

    beckhambobo(beckham)的是正确的.
    以为如果是:
      select item,price,drq from tb_test where drq in (select max(drq) from tb_test group by item);
    假设:
    当AA的最新价格是昨天的(今天没有变化不用更新)
    BB的最新价格是今天的.
    表内数据如下:
    ITEM   PRICE DRQ
    ---- ------- -----------
    AA      3.56 2004-3-26 9
    BB      4.56 2004-3-26 9
    BB      5.56 2004-3-27 9
    BB      6.56 2004-3-21 9那么用这个语句就会选出这样的结果
    ITEM   PRICE DRQ
    ---- ------- -----------
    AA      3.56 2004-3-26 9
    BB      4.56 2004-3-26 9
    BB      5.56 2004-3-27 9请思考!还是beckhambobo(beckham)的语句正确.
    select item,price from tb_test where (item,drq) in (select item,max(drq) from tb_test group by item);
      

  9.   

    SELECT * FROM TEST T WHERE (T.ITEM,T.DATE1) IN (SELECT ITEM,MAX(DATE1) FROM TEST GROUP BY ITEM)
      

  10.   

    SELECT * FROM a T WHERE (T.ITEM,T.DATE1) IN (SELECT ITEM,MAX(DATE1) FROM a GROUP BY ITEM)
      

  11.   

    上面只有这两句是对的,其它全错!
    select item,price from tb_test where (item,drq) in (select item,max(drq) from tb_test group by item);

    SELECT * FROM TEST T WHERE (T.ITEM,T.DATE1) IN (SELECT ITEM,MAX(DATE1) FROM TEST GROUP BY ITEM)
    不过这也太慢了吧! 应该是下面这句:select item,price,mydate from test t where mydate=(select max(mydate) from te
    st where item=t.item);