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,
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,
后面这句话是说将
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字段。
NVL(E.SEGMENT1,INV.SEGMENT1) SEGMENT1,
G.ATTRIBUTE1,
E.required_quantity - E.quantity_issued SUM_QTY
这三个值怎么理解,
看成是表名,还是什么,看成表名应该是不对的!!!!!
其他的看成字段
也就是说这张表有3个字段
NVL(E.SEGMENT1,INV.SEGMENT1) SEGMENT1,
G.ATTRIBUTE1,
E.required_quantity - E.quantity_issued SUM_QTY