从合计值倒推出初始日期的极简方法

简介: 本文介绍了一种通过计划入库量和入库后库存倒推初始零库存日期的方法,并补充每日入库前的库存(UPDATED_CUSTQTY)。以 2 月 26 日为例,通过逐日倒推计算每条记录的入库前库存,直到找到零或负库存的起始日。传统 SQL 实现复杂,因缺乏天然序号需借助窗口函数。而 SPL 提供更直观的解决方案:加载数据逆序排序、过滤指定日期前记录、循环修改每条记录的入库前库存值,最终返回完整数据,代码简洁高效。

某库表记录了特定日期计划的入库量和入库后的库存,比如 2 月 26 日计划入库 0.6,入库后库存为 3。
image.png
现在要根据指定的日期,用计划的入库量和入库后的库存倒推出初始日期,也就是零库存或负库存的那一天,并补上这期间每一天入库前的库存UPDATED_CUSTQTY,最后返回完整数据。比如给定 2 月 26 日,可知当日入库前的库存是 3-0.6=2.4;倒推到上一条记录,2 月 23 日入库前的库存是 2.4-0.6=1.8;直到 2 月 20 日为止,当日原库存是 0。
image.png
SQL缺乏天然序号,没有方便的语法表达相对位置,要用多个窗口函数间接实现,代码很难写。SPL 可以直接表示相对位置或绝对位置:https://try.esproc.com/splx?3FZ
image.png
A1:加载数据,按日期逆序排序,新增计算列入库前的库存 UPDATED_CUSTQTY,初值为 null。

A2:过滤出指定日期之前的记录,这些记录引用了 A1 的记录,修改这些记录会影响 A1。
5a9ddc599a4fcba6d748160d6849782b_a10011ef75d44fb4a3ebb91a84b061c1_Picture1.png
A3:循环修改 A2 的每条记录:如果当前是第 1 条记录,则入库前的库存等于”入库后的库存 - 入库量”,否则等于”上一条入库前的库存 - 入库量”,直到这个值小于 0 为止,结果保留一位小数。 [-1] 表示上一条记录。修改后的 A2 如下:
46e07f827ff049d97d04a2b64bc3a940_914e5b2fc0ee4077a076faffb4ee76f9_Picture2.png
A4:返回完整数据 A1,其中红框部分是 A2。
1c330e885b46f2397713421beef096dd_ac3e33b50e2f4ac0ab6d6717c48e6edf_Picture3.png
esProcSPL是开源免费的,欢迎前往乾学院下载试用~

目录
打赏
0
12
13
2
82
分享
相关文章
AI 时代,为什么编程能力≠ 开发门槛
在 2.0 阶段,我们目标是实现面向任务的协同编码模式,人的主要职责转变为任务的下发、干预以及最后结果的审查。在这个过程中,人的实际工作量开始减轻,AI 工作的占比显著提升。目前的 2.0 版本是我们最近上线的。
447 93
logging的基本使用教程
这篇文章提供了Python `logging` 模块的基本使用教程,包括如何配置日志级别和格式、记录不同级别的日志消息,以及如何将日志输出到文件。
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
946 103
Windows C++ 启动子进程并绑定子进程,主进程结束关闭后自动结束关闭子进程
在Windows平台上主进程启动子进程,并使主进程结束关闭后自动结束关闭子进程
386 0
🔈阿里云百炼工作流里循环节点和批量节点,你需要知道的事儿
本文介绍了智能体应用和工作流应用中的循环节点与批量节点的使用方法及区别。两者都适用于多次调用任务,输入为列表,输出也为列表。不同在于:循环节点顺序执行,可依赖前序结果;批量节点并行执行,各任务独立。以旅游推荐为例,用户输入城市后,通过大模型生成景点列表,再用循环或批量节点生成详细攻略。最后通过脚本处理输出结果,形成清晰展示。
402 22
全新「宜搭出海版」,跨境业务一搭搞定!
在全球化竞争中,中国出海企业面临高增长与抗风险的双重挑战。宜搭基于低代码平台推出「宜搭出海版」,专注解决跨境业务的核心痛点。提供15种语言+AI翻译、全球文件速传、国际化时区协同、全球地址定位、国际化邮箱、货币支持及离线能力等功能,助力企业实现高效、敏捷的全球业务拓展。版本包括面向中国出海企业的“宜搭出海版”和面向海外客户的“宜搭国际版”。
158 17
|
3月前
|
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
125 14
云上玩转DeepSeek系列之六:DeepSeek云端加速版发布,具备超高推理性能
作为国内首个千亿级开源 MoE 模型,DeepSeek-R1 凭借其卓越的代码生成与复杂推理能力,已成为开发者构建智能应用的首选。然而,原始模型在产业落地中面临严峻挑战,部署 671B 满血版模型不仅硬件门槛要求很高,同时吞吐效率和响应延迟也受到了制约。PAI 正式推出了优化版 DeepSeek-R1 模型 DeepSeek-R1-PAI-optimized,将大模型推理效率推向了 Next Level。
SAE 实现应用发布全过程可观测
本文聚焦阿里云Serverless应用引擎(SAE)用户在发布过程中的痛点,如“发布效率低、实例启动过程不透明”等问题。通过分步骤可视化解决方案,帮助用户明确问题、理解原因并最终解决,提升SAE平台使用体验。文章详细剖析了发布过程慢、信息透出不足及实例启动黑盒等痛点,并提出通过可观测、可解释和可优化的策略解决问题,同时展示了具体实现效果与后续优化规划。
389 68
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问