【问题标题】:How to calculate Inventory in Maximo Query如何在 Maximo Query 中计算库存
【发布时间】:2019-03-20 12:49:29
【问题描述】:

我很难在 maximo 中计算或获取正确的库存值。

必填字段是:

  1. 项目
  2. 说明
  3. 默认箱
  4. 发行单位
  5. 当前余额
  6. 未分级的硬保留数量
  7. 硬预留数量发货
  8. 发货总量
  9. 库存已过期
  10. 可用数量
  11. 当前保留数量
  12. 硬保留数量
  13. 软预留数量
  14. 数量 存放地点的分段数量

缺少字段:

  1. 硬预留数量发货
  2. 发货总量
  3. 库存已过期
  4. 可用数量
  5. 当前保留数量
  6. 硬保留数量
  7. 软预留数量
  8. 数量 存放地点的分段数量

这是我的部分查询:

select 
   inventory.orgid,
   inventory.siteid,
   inventory.location,
   inventory.itemnum,
   item.description,
   invbalances.binnum 
   (select sum(invbalances.curbal) from invbalances),
   (Sum (INVRESERVE.RESERVEDQTY)) - Sum (INVRESERVE.STAGEDQTY) as HardReservedQuantityNotStaged,
   Sum (INVRESERVE.SHIPPEDQTY) as HardReservedQuantityShipped 
from inventory 
inner join ITEM on item.itemnum = inventory.itemnum 
left outer join INVBALANCES on item.itemnum = invbalances.itemnum 
left outer join INVRESERVE on item.itemnum = invreserve.itemnum 
left outer join ASSET on item.itemnum = asset.itemnum
where inventory.itemnum = '11453'
group by inventory.orgid, inventory.siteid, inventory.location,inventory.itemnum, item.description, invbalances.binnum

谁能帮我获取缺失字段的值?

【问题讨论】:

  • 这是无法阅读的,因为它没有被格式化。除非您向我们提供有关数据库结构和预期输出的信息,否则我们也无法提供帮助。
  • 您需要使用 Maximo 报告工具,如果需要,可以使用自定义报告。这是 IBM 提供的特定领域软件,您应该在其中寻求相关培训。
  • 我需要在 Eclipse 的 birt 报告中执行此操作,我使用 razor 作为查询工具,它在 db2 中。

标签: db2 inventory maximo


【解决方案1】:

以下查询对我有用并且能够获取正确的记录。

请检查并告诉我它是否适合您。

SELECT
    item.itemnum item,
    item.description description,
    inventory.binnum default_bin,
    inventory.issueunit issue_unit,
    (
        SELECT
            nvl(SUM(ib.curbal),0)
        FROM
            invbalances ib
        WHERE
            ib.itemnum = inventory.itemnum
            AND   ib.location = inventory.location
            AND   ib.itemsetid = inventory.itemsetid
            AND   ib.siteid = inventory.siteid
    ) current_balance,
    ( (
        SELECT
            nvl(SUM(reservedqty),0)
        FROM
            invreserve
        WHERE
            inventory.itemnum = invreserve.itemnum
            AND   inventory.location = invreserve.location
            AND   inventory.itemsetid = invreserve.itemsetid
            AND   inventory.siteid = invreserve.storelocsiteid
            AND   invreserve.restype IN (
                'APHARD',
                'HARD'
            )
    ) - (
        SELECT
            SUM(invuseline.quantity)
        FROM
            invuseline
            JOIN invreserve ON invreserve.requestnum = invuseline.requestnum
                               AND invreserve.restype IN (
                'APHARD',
                'HARD'
            )
            JOIN invuse ON invuseline.invusenum = invuse.invusenum
                           AND invuse.siteid = invuseline.siteid
                           AND invuse.status IN (
                'SHIPPED',
                'STAGED'
            )
        WHERE
            inventory.itemnum = invuseline.itemnum
            AND   inventory.location = invuseline.fromstoreloc
            AND   inventory.siteid = invuseline.siteid
            AND   inventory.itemsetid = invuseline.itemsetid
    ) + (
        SELECT
            nvl(SUM(matrectrans.quantity),0)
        FROM
            matrectrans
            JOIN invuse ON invuse.invuseid = matrectrans.invuseid
                           AND invuse.receipts = 'PARTIAL'
            JOIN invuseline ON invuseline.invuselineid = matrectrans.invuselineid
            JOIN invreserve ON invreserve.requestnum = invuseline.requestnum
                               AND invreserve.restype IN (
                'APHARD',
                'HARD'
            )
        WHERE
            inventory.itemnum = matrectrans.itemnum
            AND   inventory.location = matrectrans.fromstoreloc
            AND   inventory.siteid = matrectrans.siteid
            AND   inventory.itemsetid = matrectrans.itemsetid
            AND   matrectrans.status = 'COMP'
    ) ) hard_reserved_qty_not_staged,
    ( (
        SELECT
            nvl(SUM(invuseline.quantity),0)
        FROM
            invuseline
            JOIN invuse ON invuseline.invusenum = invuse.invusenum
                           AND invuse.siteid = invuseline.siteid
                           AND invuse.status IN (
                'SHIPPED',
                'COMPLETE'
            )
            JOIN invreserve ON invreserve.requestnum = invuseline.requestnum
                               AND invreserve.restype IN (
                'APHARD',
                'HARD'
            )
        WHERE
            inventory.itemnum = invuseline.itemnum
            AND   inventory.location = invuseline.fromstoreloc
            AND   inventory.siteid = invuseline.siteid
            AND   inventory.itemsetid = invuseline.itemsetid
    ) - (
        SELECT
            nvl(SUM(matrectrans.quantity),0)
        FROM
            matrectrans
            JOIN invuse ON invuse.invuseid = matrectrans.invuseid
                           AND invuse.receipts = 'PARTIAL'
            JOIN invuseline ON invuseline.invuselineid = matrectrans.invuselineid
            JOIN invreserve ON invreserve.requestnum = invuseline.requestnum
                               AND invreserve.restype IN (
                'APHARD',
                'HARD'
            )
        WHERE
            inventory.itemnum = matrectrans.itemnum
            AND   inventory.location = matrectrans.fromstoreloc
            AND   inventory.siteid = matrectrans.siteid
            AND   inventory.itemsetid = matrectrans.itemsetid
            AND   matrectrans.status = 'COMP'
    ) ) hard_reserved_qty_shipped,
    (
        SELECT
            nvl(SUM(invuseline.quantity),0)
        FROM
            invuseline
            JOIN invuse ON invuseline.invusenum = invuse.invusenum
                           AND invuse.siteid = invuseline.siteid
                           AND invuse.status = 'SHIPPED'
        WHERE
            inventory.itemnum = invuseline.itemnum
            AND   inventory.location = invuseline.fromstoreloc
            AND   inventory.siteid = invuseline.siteid
            AND   inventory.itemsetid = invuseline.itemsetid
    ) - (
        SELECT
            nvl(SUM(quantity),0)
        FROM
            matrectrans
        WHERE
            inventory.itemnum = matrectrans.itemnum
            AND   inventory.location = matrectrans.fromstoreloc
            AND   inventory.siteid = matrectrans.siteid
            AND   inventory.itemsetid = matrectrans.itemsetid
            AND   status = 'COMP'
    ) total_quantity_shipped,
    (
        SELECT
            nvl(SUM(ib.curbal),0)
        FROM
            invbalances ib
        WHERE
            ib.itemnum = inventory.itemnum
            AND   ib.location = inventory.location
            AND   ib.itemsetid = inventory.itemsetid
            AND   ib.siteid = inventory.siteid
    ) - ( (
        SELECT
            nvl(SUM(reservedqty),0)
        FROM
            invreserve
        WHERE
            inventory.itemnum = invreserve.itemnum
            AND   inventory.location = invreserve.location
            AND   inventory.itemsetid = invreserve.itemsetid
            AND   inventory.siteid = invreserve.storelocsiteid
            AND   invreserve.restype IN (
                'APHARD',
                'HARD'
            )
    ) - ( (
        SELECT
            nvl(SUM(invuseline.quantity),0)
        FROM
            invuseline
            JOIN invuse ON invuseline.invusenum = invuse.invusenum
                           AND invuse.siteid = invuseline.siteid
                           AND invuse.status IN (
                'STAGED',
                'SHIPPED'
            )
            JOIN invreserve ON invreserve.requestnum = invuseline.requestnum
                               AND invreserve.restype IN (
                'APHARD',
                'HARD'
            )
        WHERE
            inventory.itemnum = invuseline.itemnum
            AND   inventory.location = invuseline.fromstoreloc
            AND   inventory.siteid = invuseline.siteid
            AND   inventory.itemsetid = invuseline.itemsetid
    ) ) + (
        SELECT
            nvl(SUM(matrectrans.quantity),0)
        FROM
            matrectrans
            JOIN invuse ON invuse.invuseid = matrectrans.invuseid
                           AND invuse.receipts = 'PARTIAL'
            JOIN invuseline ON invuseline.invuselineid = matrectrans.invuselineid
            JOIN invreserve ON invreserve.requestnum = invuseline.requestnum
                               AND invreserve.restype IN (
                'APHARD',
                'HARD'
            )
        WHERE
            inventory.itemnum = matrectrans.itemnum
            AND   inventory.location = matrectrans.fromstoreloc
            AND   inventory.siteid = matrectrans.siteid
            AND   inventory.itemsetid = matrectrans.itemsetid
            AND   matrectrans.status = 'COMP'
    ) ) quantity_available,
    (
        SELECT
            nvl(SUM(reservedqty),0)
        FROM
            invreserve
        WHERE
            inventory.itemnum = invreserve.itemnum
            AND   inventory.location = invreserve.location
            AND   inventory.itemsetid = invreserve.itemsetid
            AND   inventory.siteid = invreserve.storelocsiteid
    ) quantity_currently_reserved,
    (
        SELECT
            nvl(SUM(reservedqty),0)
        FROM
            invreserve
        WHERE
            inventory.itemnum = invreserve.itemnum
            AND   inventory.location = invreserve.location
            AND   inventory.itemsetid = invreserve.itemsetid
            AND   inventory.siteid = invreserve.storelocsiteid
            AND   invreserve.restype IN (
                'APHARD',
                'HARD'
            )
    ) hard_reserved_quantity,
    (
        SELECT
            nvl(SUM(reservedqty),0)
        FROM
            invreserve
        WHERE
            inventory.itemnum = invreserve.itemnum
            AND   inventory.location = invreserve.location
            AND   inventory.itemsetid = invreserve.itemsetid
            AND   inventory.siteid = invreserve.storelocsiteid
            AND   invreserve.restype IN (
                'APSOFT',
                'SOFT'
            )
    ) soft_reserved_quantity,
    (
        SELECT
            nvl(SUM(invuseline.quantity),0)
        FROM
            invuseline
            JOIN invuse ON invuseline.invusenum = invuse.invusenum
                           AND invuse.siteid = invuseline.siteid
                           AND invuse.status = 'STAGED'
        WHERE
            inventory.itemnum = invuseline.itemnum
            AND   inventory.location = invuseline.fromstoreloc
            AND   inventory.siteid = invuseline.siteid
            AND   inventory.itemsetid = invuseline.itemsetid
    ) quantity_staged
FROM
    inventory
    JOIN item ON item.itemsetid = inventory.itemsetid
                 AND item.itemnum = inventory.itemnum

【讨论】:

    猜你喜欢
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多