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

IBM Maximo:使用MatRecTrans表构建特定库存零件查询的问题

解决Inventory零件查询的过滤条件问题

你需要结合MATRECTRANS表的两个核心条件来完善查询:一是筛选出收货日期满12个月的零件,二是排除近12个月有资产发放记录的零件。以下是调整后的完整查询逻辑:

SELECT i.itemnum, i.location, i.siteid, i.itemsetid
FROM inventory i
WHERE 
    -- 零件状态非废弃且有可用库存
    EXISTS (
        SELECT 1 
        FROM synonymdomain sd
        WHERE sd.domainid = 'ITEMSTATUS' 
          AND sd.maxvalue != 'OBSOLETE'
          AND sd.value = i.status
    )
    AND EXISTS (
        SELECT 1 
        FROM invbalances ib
        WHERE ib.itemnum = i.itemnum
          AND ib.location = i.location
          AND ib.siteid = i.siteid 
          AND ib.itemsetid = i.itemsetid 
          AND ib.curbal != 0
    )
    -- 最后一次发放日期早于12个月前
    AND i.lastissuedate < CURRENT DATE - 12 MONTH
    -- 条件1:存在至少一条收货记录,且收货日期早于当前日期12个月
    AND EXISTS (
        SELECT 1 
        FROM matrectrans mr
        WHERE mr.itemnum = i.itemnum
          AND mr.location = i.location
          AND mr.siteid = i.siteid 
          AND mr.itemsetid = i.itemsetid 
          AND mr.issuetype = 'RECEIPT'
          AND mr.transdate <= CURRENT DATE - 12 MONTH
    )
    -- 条件2:近12个月内无发放给资产的记录(注意issuetype需匹配你系统的实际值)
    AND NOT EXISTS (
        SELECT 1 
        FROM matrectrans mr
        WHERE mr.itemnum = i.itemnum
          AND mr.location = i.location
          AND mr.siteid = i.siteid 
          AND mr.itemsetid = i.itemsetid 
          -- 替换为你系统中"发放给资产"对应的issuetype值,比如'ISSUE'
          AND mr.issuetype IN ('ISSUE') 
          AND mr.transdate >= CURRENT DATE - 12 MONTH
    );

关键细节说明:

  • 用EXISTS关联MATRECTRANS表,确保零件存在符合时间要求的收货记录;
  • 用NOT EXISTS排除近12个月内有资产发放行为的零件,注意issuetype需要根据你系统的实际配置调整;
  • 保留了你原查询中关于零件状态、库存余额的校验逻辑,保证结果的有效性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:12:45