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

Power BI中按日期筛选时获取各Werk物料最新库存值的方法

按Werk维度获取指定日期前的物料最新库存记录

核心思路

先筛选出所有日期不晚于目标日期的库存记录,再针对每个Werk+material组合,找出其中日期最新的那条记录。


方法一:使用窗口函数(推荐,适用于MySQL 8.0+、PostgreSQL、SQL Server等支持窗口函数的数据库)

SELECT Werk, material, description, stock, `$$`, date
FROM (
    SELECT 
        *,
        -- 按Werk和物料分组,组内按日期倒序生成排名
        ROW_NUMBER() OVER (PARTITION BY Werk, material ORDER BY date DESC) AS rn
    FROM inventory
    -- 过滤出目标日期及之前的记录
    WHERE date <= @target_date
) t
-- 取每个分组的第一条(最新日期)记录
WHERE rn = 1;
  • 替换@target_date为实际要筛选的日期(比如202311)
  • 表名inventory替换为你的实际表名
  • $$是特殊字段名,需用反引号/双引号转义,避免语法错误

方法二:使用关联子查询(适用于不支持窗口函数的老版本数据库)

SELECT i1.Werk, i1.material, i1.description, i1.stock, i1.`$$`, i1.date
FROM inventory i1
WHERE i1.date <= @target_date
-- 确保当前记录是该Werk+物料下,目标日期前的最新记录
AND NOT EXISTS (
    SELECT 1
    FROM inventory i2
    WHERE i2.Werk = i1.Werk
      AND i2.material = i1.material
      AND i2.date <= @target_date
      AND i2.date > i1.date
);
  • 逻辑说明:找到所有在目标日期前,且不存在同Werk同物料、日期更新且不超过目标日期的记录,这类记录就是对应组合的最新库存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:31:00