Sql - 获取使用该项目的先前订单

时间:2015-02-10 20:56:02

标签: sql oracle10g

我有下表

order_item

   order_id|   item_id
    --------------------------------
    213    |    3
    215    |    3
    244    |    2
    299    |    3
    400    |    3

用户输入: item_idorder_id例如:3 & 299分别在上例中。

要求:我需要找到使用item_id 3销售商品的最后一个订单。 (在这种情况下215 order_id)

因为输入(order_id,item_id)是(299,3)。从表中可以看出已售出第3项的最近订单为order_id 215,因此,我需要将(215,3)行返回给用户。

我尝试了以下内容,我知道这是错误的,因为我不知道如何获取上述信息。

select (select oi.item_id from order_item oi where oi.order_id < order_id and rownum =1) 
from order_item where order_id = 299 and item_id = 3  

3 个答案:

答案 0 :(得分:1)

这应该做:

select max(order_id) from order_item where  order_id <299 and item_id =3

答案 1 :(得分:1)

试试这个 甲骨文

 select order_id,item_id
       from order_item 
       where order_id <299 and item_id = 3 
       and rownum = 1
       order by order_id desc 

SQL Server

select top 1 * 
   from order_item 
   where order_id <299 and item_id = 3 
   order by order_id desc 

答案 2 :(得分:0)

你可以尝试这个查询吗?

select max(order_id) from order_item where  order_id < ( 
select order_id from order_item where  order_id = 299 and item_id = 3  ) and item_id = 3;