我有下表
order_item
order_id| item_id
--------------------------------
213 | 3
215 | 3
244 | 2
299 | 3
400 | 3
用户输入: item_id
和order_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
答案 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;