最早可用日期 - 总数量

Earliest Available Date - Sum Qty's

我正在尝试确定某个项目的最早可用日期。以下记录是未结采购订单日期的示例。

如果销售订单要求 数量 150,最早可用日期为 2018-09-06.

如果销售订单要求 数量 160,最早可用日期为 2018-09-28.

使用下面的语句只会returnMAX日期值2018-10-01,有没有如何根据 SUM(po_qty) >= sales_order_qty 获取正确的最早日期?

IIF(SUM(po_qty) >= sales_order_qty,MAX(receive_date)) = 2018-10-01


branch item_id  po_qty receive_date
VMXX    93111   50     2018-06-13
VMXX    93111   50     2018-08-02
VMXX    93111   50     2018-09-06
VMXX    93111   100    2018-09-28
VMXX    93111   50     2018-10-01

在大多数数据库中,您将使用 ANSI 标准的累积和功能:

select min(receive_date)
from (select t.*,
             sum(po_qty) over (partition by branch, item_id order by receive_date) as running_qty
      from t
      where branch = ? and item_id = ?
    ) t
where running_qty >= ?;