日期:2014-05-17  浏览次数:20921 次

救命,这个语句怎么写?
两个表

表名: 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)
条件是 每种产品只取一条 每个产品取日期最近的那条记录。

------解决方案--------------------
SQL code
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

------解决方案--------------------
是写错了
row_number() over()