SELECT SEGMENT1,NVL(ATTRIBUTE1,' '),SUM(SUM_QTY),'       ' ,'       ' 
FROM (
SELECT  DISTINCT  NVL(E.SEGMENT1,INV.SEGMENT1) SEGMENT1,  G.ATTRIBUTE1,
  E.required_quantity - E.quantity_issued SUM_QTY
FROM WIP_REQUIREMENT_OPERATIONS E,
           ( SELECT  INVENTORY_ITEM_ID,
                           ATTRIBUTE1
             FROM    MTL_ITEM_SUB_INVENTORIES
             WHERE  ORGANIZATION_ID = :P_ORG_ID
               AND     SECONDARY_INVENTORY = 'A01' )  G,
           MTL_SYSTEM_ITEMS_B INV,    bom_departments  dept
WHERE    E.WIP_ENTITY_ID IN (    SELECT A.WIP_ENTITY_ID
                                                      FROM   WIP_ENTITIES   A, WIP_DISCRETE_JOBS B, MTL_SYSTEM_ITEMS_B C, MTL_ITEM_CATEGORIES_V      CATE1
                                                      WHERE  A.WIP_ENTITY_ID = B.WIP_ENTITY_ID
                                                           AND       A.ORGANIZATION_ID  IN  (   SELECT  DECODE(:P_ORG_ID,NULL,ORGANIZATION_ID,:P_ORG_ID)
                                                          FROM     org_organization_definitions
                                                          WHERE OPERATING_UNIT=196--:P_ORG
                                                           AND   DISABLE_DATE IS NULL )
                                                           and a.wip_entity_name = '172933'
--                                                      AND       (A.WIP_ENTITY_NAME  >= :P_FROM_SNO OR :P_FROM_SNO IS NULL)
--                                                      AND       (A.WIP_ENTITY_NAME  <= :P_TO_SNO OR :P_TO_SNO IS NULL)
--                                        AND       (B.DATE_COMPLETED IS NULL  AND :P_COMP='Y'  OR :P_COMP<>'Y' OR :P_COMP IS NULL)        --Чぃ璸暗匡兜
                                                      AND       NVL(A.PRIMARY_ITEM_ID,44010)   = C.INVENTORY_ITEM_ID
    --礚ITEM_IDボ虫礚舱ン腹, ノ安腹(ヘ玡琌ノ# 2002腹ぃ穦秨ミ虫, 珿ノㄓ篡腇祘Α, 盢安腹锣Θフ陪ボ
                                                      AND       C.ORGANIZATION_ID =A.ORGANIZATION_ID
                                     --                 AND       (B.ATTRIBUTE1 = :P_CKD  OR :P_CKD IS NULL)
--                                                      AND       (RTRIM(C.SEGMENT1)   >= :P_FROM_NO OR :P_FROM_NO IS NULL )
--                                                      AND       (RTRIM(C.SEGMENT1)   <= :P_TO_NO OR :P_TO_NO IS NULL )
--                                                      AND       (B.DATE_RELEASED     >= :P_FROM_DATE OR :P_FROM_DATE IS NULL )
--                                                      AND       (B.DATE_RELEASED     <= :P_TO_DATE OR :P_TO_DATE IS NULL )
 --                                                     AND       B.STATUS_TYPE         in (1,3,4)
--                                                      AND       (LTRIM(RTRIM(B.CLASS_CODE))           = :P_CLASS OR :P_CLASS IS NULL )
                                                      AND       NVL(A.PRIMARY_ITEM_ID,44010) = CATE1.INVENTORY_ITEM_ID
                                                      AND    CATE1.ORGANIZATION_ID = A.ORGANIZATION_ID
                                                      AND    CATE1.CATEGORY_SET_ID = 6    /*OM CATEGORY*/
--                                                      AND    (RTRIM(CATE1.SEGMENT3)  = :P_CATEGORY OR :P_CATEGORY IS NULL)
                                                      )
AND      E.INVENTORY_ITEM_ID   = G.INVENTORY_ITEM_ID (+)
AND      E.INVENTORY_ITEM_ID   = INV.INVENTORY_ITEM_ID
AND      E.ORGANIZATION_ID       = INV.ORGANIZATION_ID
and    NVL(E.department_id,1)   = dept.department_id
--and    dept.department_code LIKE 'A杆皌%'
and    (NVL(E.required_quantity,0) - NVL(E.quantity_issued,0) > 0   OR (NVL(E.required_quantity,0) < 0 AND NVL(E.required_quantity,0) - NVL(E.quantity_issued,0) < 0))   --open>issue--and    (((E.WIP_SUPPLY_TYPE = 1  OR E.WIP_SUPPLY_TYPE = 4)  AND :P_OPT1=1) OR ((E.WIP_SUPPLY_TYPE = 2  OR E.WIP_SUPPLY_TYPE = 3)  AND :P_OPT1=2))
--AND      (E.OPERATION_SEQ_NUM    = :P_OPER  OR :P_OPER IS NULL)
)
GROUP  BY SEGMENT1, NVL(ATTRIBUTE1,' ')这段代码是什么意思:
SELECT  DISTINCT  NVL(E.SEGMENT1,INV.SEGMENT1) SEGMENT1,  G.ATTRIBUTE1,
  E.required_quantity - E.quantity_issued SUM_QTY
FROM WIP_REQUIREMENT_OPERATIONS E,
           ( SELECT  INVENTORY_ITEM_ID,
                           ATTRIBUTE1
             FROM    MTL_ITEM_SUB_INVENTORIES
             WHERE  ORGANIZATION_ID = :P_ORG_ID
               AND     SECONDARY_INVENTORY = 'A01' )  G,
    

解决方案 »

  1.   

    晕倒,又长又有乱码
    后面这句话是说将
    SELECT  INVENTORY_ITEM_ID,
                               ATTRIBUTE1
                 FROM    MTL_ITEM_SUB_INVENTORIES
                 WHERE  ORGANIZATION_ID = :P_ORG_ID
                   AND     SECONDARY_INVENTORY = 'A01' 
    所得到的结果看成表G,和将表WIP_REQUIREMENT_OPERATIONS看成表E
    将这两张表通过笛卡儿乘积的方式连在一起
    取出其中不重复的E.segment1字段,如果E.segment1为空则用inv.segment1代替,g.attribute1字段,以及用E.required_quantity 减E.quantity_issuedshengcheng1的 SUM_QTY字段。
      

  2.   

    但这句是写在FROM子句里的,得出来
    NVL(E.SEGMENT1,INV.SEGMENT1) SEGMENT1,  
    G.ATTRIBUTE1,
    E.required_quantity - E.quantity_issued SUM_QTY
    这三个值怎么理解,
    看成是表名,还是什么,看成表名应该是不对的!!!!!
      

  3.   

    整个结果看成表
    其他的看成字段
    也就是说这张表有3个字段
    NVL(E.SEGMENT1,INV.SEGMENT1) SEGMENT1,  
    G.ATTRIBUTE1,
    E.required_quantity - E.quantity_issued SUM_QTY
      

  4.   

    加入ORACLE群吧!群号是:19312711