Как рассчитать запасы в Maximo Query

Мне сложно рассчитать или получить правильные значения для инвентаря в 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

Может ли кто-нибудь помочь мне получить значения недостающих полей?


person DIANA ROSE ARNAIZ    schedule 20.03.2019    source источник
comment
Это было невозможно прочитать, так как оно не было отформатировано. Мы также не можем помочь, если вы не предоставите нам информацию о структуре базы данных и ваших ожидаемых результатах.   -  person Hogan    schedule 20.03.2019
comment
Вам нужно использовать инструменты отчетов Maximo с настраиваемым отчетом, если это необходимо. Это программное обеспечение, поставляемое IBM для конкретной предметной области, и вам следует пройти соответствующее обучение.   -  person mao    schedule 20.03.2019
comment
Мне нужно сделать это в отчете о рождении в eclipse, я использую бритву в качестве инструмента для своего запроса, она находится в db2.   -  person DIANA ROSE ARNAIZ    schedule 20.03.2019


Ответы (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
person Swaroop    schedule 07.08.2019