两个表表名:                   product                                      t_product
字段:        product_id    product_name          product_id       start_date     int_rate
t_product的product_id引用product表中的product_id
product是1    t_product是多
t_product纪录产品的汇率 同一个产品经常会添加新的汇率
我想联合这两个表一次查询出
产品id(product_id), 产品名称(product_name), 汇率的公布时间(start_date), 汇率(int_rate)
条件是 每种产品只取一条 每个产品取日期最近的那条记录。

解决方案 »

  1.   

    SELECT p.product_id, p.product_name, t.start_date, t.int_rate
      FROM (SELECT p.*
                  ,t.*
                  ,rownum over(PARTITION BY t.product_id ORDER BY t.start_date DESC) rn
              FROM product p
              LEFT JOIN t_product t ON p.product_id = t.product_id)
     WHERE rn = 1
      

  2.   

    ORA-00923:  FROM keyword not found where expected
    报这个错。
      

  3.   

    是写错了
    row_number() over()
      

  4.   

    row_number  -> Row_Number()