SQL 分组取数 问题

根据销售数量 - 取 满足数量的前几个批号 ,ID 78 取出前4条满足 销售数量 20;ID7424 取1 条满足了。批号为当时查询时的数据,一个货品,有可能1 条就满足需求,有可能N条才满足

订单ID 订单明细ID 货品ID 采购数量 批号 库存数量
6365318 164886295 78 20 39545 4
6365318 164886295 78 20 39548 1
6365318 164886295 78 20 57621 12
6365318 164886295 78 20 57622 106
6365318 164886295 78 20 57623 44
6365318 164886295 78 20 57624 256
6365318 164886295 78 20 57625 4080
6365318 164886296 7424 1 18476 5047

我想要达到的结果

6365318 164886295 78 20 39545 4
6365318 164886295 78 20 39548 1
6365318 164886295 78 20 57621 12
6365318 164886295 78 20 57622 106
6365318 164886296 7424 1 18476 5047

数据存在oracle 数据库吗? 按照批号正序取? UDF可以解决

这个可以分别取出来,然后UNION ALL 关联,这里不清楚你的销售数量是怎么计算的,是否就是采购数量呢


SELECT 订单ID 订单明细ID 货品ID 采购数量 批号 库存数量 FROMwhere ID=‘78order by 销售数量 limit 4
 union all 
SELECT 订单ID 订单明细ID 货品ID 采购数量 批号 库存数量 FROMwhere ID=‘742order by 销售数量 limit 1