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

如何实现按Item分组、Timestamp倒序的累计Loaded值计算自刷新报表?

实现多物料入库进度累计报表的SQL方案

首先明确需求核心:我们需要对每个物料(Item),按入库时间(Timestamp)从早到晚累加已入库数量(Loaded),然后按时间从晚到早排序展示,这样工人就能直观看到每一个时间节点的累计入库进度,以及最新的进度情况。

解决方案思路

利用SQL的窗口函数(Window Function)来实现分组累加,这是处理这类分组累计需求最简洁高效的方式:

  • 用PARTITION BY Item对每个物料单独分组计算,避免不同物料的进度混淆
  • 用ORDER BY Timestamp ASC指定按时间从早到晚的顺序累加,确保每一步的累计值是从最早入库记录开始逐步叠加的
  • 最后整体按Timestamp DESC排序,让最新的进度排在最前面,方便工人快速查看

示例SQL代码

假设你的入库记录表名为InboundRecords,执行以下SQL即可得到符合要求的报表结果:

SELECT
    Timestamp,
    Item,
    SUM(Loaded) OVER (PARTITION BY Item ORDER BY Timestamp ASC) AS Loaded,
    Expected
FROM InboundRecords
ORDER BY Timestamp DESC;

结果验证

我们用你提供的原始数据来验证逻辑:

  • 对于物料A1,时间顺序是6→7→8→10,累加后Loaded分别为1、2、13、14
  • 对于物料A2,时间顺序是2→9,累加后Loaded分别为6、7

按Timestamp降序排序后,最终结果如下(注:你提供的期望输出中A1的Timestamp7的Expected为4,推测是输入笔误,原始数据中A1的Expected均为14):

TimestampItemLoadedExpected
10A11414
9A278
8A11314
7A1214
6A1114
2A268

关于自刷新报表

如果要实现报表自动刷新,你可以将这个SQL封装成存储过程,或者在报表工具(如Power BI、Tableau等)中设置定时数据刷新频率,确保工人随时能看到最新的入库进度状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:08:21