Не удалось добавить таблицу SELECT () - PullRequest
0 голосов
/ 26 сентября 2018

Ошибка при добавлении запроса, который выполняется в SQL-разработчике, но не в MS Query.Кажется, мне не нравится мой вложенный запрос.

Код, который я использую:

SELECT ORDER_DATE
    ,SALES_ORDER_NO
    ,CUSTOMER_PO_NUMBER
    ,DELIVER_TO
    ,STATUS
    ,ITEM_NUMBER
    ,DESCRIPTION
    ,ORD_QTY
    ,SUM(QUANTITY) AS ON_HAND
    ,PACKAGE_ID
    ,PACKAGE_STATUS
    ,MAX(TRAN_DATE) AS LAST_TRANSACTION
    ,MIN(DAYS) AS DAYS
FROM (
    SELECT TRUNC(SH.ORDER_DATE) AS ORDER_DATE
        ,SH.SALES_ORDER_NO
        ,SH.CUSTOMER_PO_NUMBER
        ,SH.SHIP_CODE AS DELIVER_TO
        ,SH.STATUS
        ,SB.ITEM_NUMBER
        ,IM.DESCRIPTION
        ,SB.ORD_QTY
        ,BID.QUANTITY
        ,SPM.PACKAGE_ID
        ,CASE 
            WHEN SPM.SHIPPED = 'Y'
                THEN 'SHIPPED'
            WHEN SPM.STATUS = 'C'
                THEN 'PACKED'
            WHEN BID.QUANTITY IS NOT NULL
                THEN 'AVAILABLE'
            WHEN BID.QUANTITY IS NULL
                THEN 'UNAVAILABLE'
            END AS PACKAGE_STATUS
        ,CASE 
            WHEN SPM.SHIPPED = 'Y'
                THEN TRUNC(SPM.BILLING_DATE)
            WHEN SPM.STATUS = 'C'
                THEN TRUNC(SPM.END_TIME)
            WHEN BID.QUANTITY IS NOT NULL
                THEN TRUNC(BID.ACTIVATION_TIME)
            END AS TRAN_DATE
        ,CASE 
            WHEN SPM.SHIPPED = 'Y'
                THEN ROUND(SYSDATE - SPM.BILLING_DATE, 0)
            WHEN SPM.STATUS = 'C'
                THEN ROUND(SYSDATE - SPM.END_TIME, 0)
            WHEN BID.QUANTITY IS NOT NULL
                THEN ROUND(SYSDATE - BID.ACTIVATION_TIME, 0)
            END AS DAYS
    FROM SO_HEADER SH
    LEFT JOIN SO_BODY SB ON SB.SO_HEADER_TAG = SH.SO_HEADER_TAG
    LEFT JOIN SO_PACKAGE_MASTER SPM ON SPM.PACKAGE_ID = SB.PACKAGE_ID
    LEFT JOIN ITEM_MASTER IM ON IM.ITEM_NUMBER = SB.ITEM_NUMBER
    LEFT JOIN V_BIN_ITEM_DETAIL BID ON BID.ITEM_NUMBER = SB.ITEM_NUMBER
    WHERE SH.ORDER_TYPE = 'MSR'
        AND (
            SB.REASON_CODE IS NULL
            OR SB.REASON_CODE NOT LIKE 'CANCEL%'
            )
        AND (
            IM.DESCRIPTION NOT LIKE '%CKV%'
            OR IM.DESCRIPTION IS NULL
            AND IM.ITEM_NUMBER IS NOT NULL
            )
    )
WHERE PACKAGE_STATUS <> 'SHIPPED'
GROUP BY ORDER_DATE
    ,SALES_ORDER_NO
    ,CUSTOMER_PO_NUMBER
    ,DELIVER_TO
    ,STATUS
    ,ITEM_NUMBER
    ,DESCRIPTION
    ,ORD_QTY
    ,PACKAGE_ID
    ,PACKAGE_STATUS
ORDER BY (
        CASE PACKAGE_STATUS
            WHEN 'AVAILABLE'
                THEN 1
            WHEN 'UNAVAILABLE'
                THEN 2
            WHEN 'PACKED'
                THEN 3
            END
        )
    ,LAST_TRANSACTION;

Могу ли я выбрать какую-либо опцию, которая позволит мне выполнить этот запрос?

...