我需要在按日期排序的一组数据的条件之后返回前三行。请参阅下面的查询以及一些数据:
选择发票,cli_id,sale_date,已处理 来自销售 其中cli_id =' 490727' 按sale_date订购
我需要在某些条件之前返回之前的3行==>加工=' W' 例如:想知道前三行的PROCESSED =' W'发票是7995792.它将返回: 7995793,7995794和7995795
答案 0 :(得分:1)
在Oracle 12C中,您可以使用:
vectortestInner
在早期版本中,您需要一个子查询:
select s.*
from sales s
where s.sale_date < (select s2.sale_date
from sales s2
where s2.cli_id = s.cli_id and s2.processed = 'W'
) and
s.cli_id = 490727
order by s.sale_date desc
fetch first 3 rows only;