最早可用日期 - 总数量
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 >= ?;
我正在尝试确定某个项目的最早可用日期。以下记录是未结采购订单日期的示例。
如果销售订单要求 数量 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 >= ?;