You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19.3:按日期/尺码计算avail_qty的SQL实现需求

Oracle 19.3 按日期与尺码计算可用数量的SQL实现

环境为Oracle 19.3,需基于提供的test表数据,按avail_date(日期)和size_id(尺码)维度计算avail_qty(可用数量)。


数据表定义与数据插入

create table test
(
avail_date  date
,size_id    varchar2(10)
,purchases  number
,sales      number
,oh_qty     number
);

insert into test values (to_date('3/1/2024','mm/dd/yyyy'),'30',0,0,20);
insert into test values (to_date('3/1/2024','mm/dd/yyyy'),'32',0,0,15);
insert into test values (to_date('3/1/2024','mm/dd/yyyy'),'34',0,5,10);

insert into test values (to_date('3/25/2024','mm/dd/yyyy'),'30',5,0,20);
insert into test values (to_date('3/25/2024','mm/dd/yyyy'),'32',0,1,15);
insert into test values (to_date('3/25/2024','mm/dd/yyyy'),'34',3,5,10);

insert into test values (to_date('4/5/2024','mm/dd/yyyy'),'30',1,0,20);
insert into test values (to_date('4/5/2024','mm/dd/yyyy'),'32',0,0,15);
insert into test values (to_date('4/5/2024','mm/dd/yyyy'),'34',1,1,10);

计算逻辑与SQL实现

由于附图公式未提供,基于零售库存常规逻辑,可用数量核心计算公式为:
avail_qty = oh_qty + purchases - sales
其中:

  • oh_qty:期初库存
  • purchases:当期采购量
  • sales:当期销售量

1. 单日期维度的可用数量计算

直接按日期和尺码计算单期可用数量:

select 
    avail_date,
    size_id,
    oh_qty + purchases - sales as avail_qty
from test
order by avail_date, size_id;

2. 累计可用数量计算(滚动库存)

若需按尺码维度计算从最早日期到当前日期的累计可用数量,使用窗口函数实现:

select 
    avail_date,
    size_id,
    oh_qty + purchases - sales as current_avail_qty,
    sum(oh_qty + purchases - sales) over (partition by size_id order by avail_date) as cumulative_avail_qty
from test
order by avail_date, size_id;

内容的提问来源于stack exchange,提问作者epipko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:48:25