当前位置: 代码迷 >> Oracle开发 >> 救命,这个语句如何写
  详细解决方案

救命,这个语句如何写

热度:48   发布时间:2016-04-24 07:43:36.0
救命,这个语句怎么写?
两个表

表名: 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()
  相关解决方案