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

简介: 本文介绍了一种通过计划入库量和入库后库存倒推初始零库存日期的方法,并补充每日入库前的库存(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是开源免费的,欢迎前往乾学院下载试用~

相关文章
|
10月前
|
人工智能 程序员 测试技术
AI 时代,为什么编程能力≠ 开发门槛
在 2.0 阶段,我们目标是实现面向任务的协同编码模式,人的主要职责转变为任务的下发、干预以及最后结果的审查。在这个过程中,人的实际工作量开始减轻,AI 工作的占比显著提升。目前的 2.0 版本是我们最近上线的。
730 93
|
10月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1655 103
|
算法 Java Apache
运筹优化工具库介绍(二)
运筹优化工具库介绍
2586 0
|
程序员 C++ Windows
Windows C++ 启动子进程并绑定子进程,主进程结束关闭后自动结束关闭子进程
在Windows平台上主进程启动子进程,并使主进程结束关闭后自动结束关闭子进程
546 0
|
9月前
|
前端开发
🔈阿里云百炼工作流里循环节点和批量节点,你需要知道的事儿
本文介绍了智能体应用和工作流应用中的循环节点与批量节点的使用方法及区别。两者都适用于多次调用任务,输入为列表,输出也为列表。不同在于:循环节点顺序执行,可依赖前序结果;批量节点并行执行,各任务独立。以旅游推荐为例,用户输入城市后,通过大模型生成景点列表,再用循环或批量节点生成详细攻略。最后通过脚本处理输出结果,形成清晰展示。
1515 22
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
1245 1
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
人工智能 Python
ImBD:复旦联合华南理工推出 AI 内容检测模型,快速辨别文本内容是否为 AI 生成
ImBD是一款由复旦大学、华南理工大学等机构联合推出的AI内容检测器,能够快速识别机器修订文本,适用于多种场景,显著提升检测性能。
1060 8
ImBD:复旦联合华南理工推出 AI 内容检测模型,快速辨别文本内容是否为 AI 生成
|
存储 关系型数据库 MySQL
技术解析:MySQL中取最新一条重复数据的方法
以上提供的两种方法都可以有效地从MySQL数据库中提取每个类别最新的重复数据。选择哪种方法取决于具体的使用场景和MySQL版本。子查询加分组的方法兼容性更好,适用于所有版本的MySQL;而窗口函数方法代码更简洁,执行效率可能更高,但需要MySQL 8.0及以上版本。在实际应用中,应根据数据量大小、查询性能需求以及MySQL版本等因素综合考虑,选择最合适的实现方案。
1350 6
|
SQL 缓存 API
在API接口数据获取过程中,如何确保数据的安全性和隐私性?
在API接口数据获取过程中,确保数据的安全性和隐私性至关重要。本文介绍了身份认证与授权、防止SQL注入和XSS攻击、加密传输、API版本控制、限流与熔断、压力测试与性能优化、备份与恢复以及法律和伦理考量等关键措施,帮助开发者和管理者有效保护API接口的数据安全和隐私性。
|
机器学习/深度学习 数据采集 算法
推荐引擎离线算法与在线算法的探索与实践
推荐引擎是现代互联网产品中至关重要的组成部分。离线算法和在线算法分别负责处理大量数据的预处理和模型训练,以及快速响应用户的实时请求。通过合理的架构设计和算法选择,可以构建出高效且个性化的推荐系统,从而提升用户体验,增加用户满意度和留存率。未来,随着技术的发展,推荐引擎将更加智能化和个性化,为用户提供更加精准的服务。