You are on page 1of 1

SELECT LEVEL level_no,

parent_id,
parent_item,
parent_desc,
child_id,
child_item,
child_desc,
bic_qty,
child_bom_type,
opt_flag,
curr_plan_factor
FROM (SELECT bic.bill_sequence_id,
bom.assembly_item_id,
bic.component_item_id,
bic.component_sequence_id,
msi.inventory_item_id parent_id,
msi.segment1 parent_item,
msi.item_type parent_type,
msi.description parent_desc,
msib.inventory_item_id child_id,
msib.segment1 child_item,
msib.description child_desc,
msib.bom_item_type child_bom_type,
msib.item_type child_type,
bic.component_quantity bic_qty,
DECODE(bic.optional, 1, 'Y', 'N') opt_flag,
bic.planning_factor curr_plan_factor
FROM mtl_system_items_b msi,
mtl_system_items_b msib,
bom_bill_of_materials bom,
bom_inventory_components bic
WHERE bom.organization_id = :p_org_id
AND msi.organization_id = :p_org_id
AND msib.organization_id = :p_org_id
AND bom.bill_sequence_id = bic.bill_sequence_id
AND bom.assembly_item_id = msi.inventory_item_id
AND bic.component_item_id = msib.inventory_item_id
AND upper(msi.inventory_item_status_code) = 'ACTIVE'
AND upper(msib.inventory_item_status_code) = 'ACTIVE'
AND msi.item_type IN ('AOC', 'ATO')
AND (bic.disable_date IS NULL OR
TRUNC(NVL(bic.disable_date, SYSDATE)) >=
TRUNC(NVL(to_date(:p_end_date, 'DD-MON-YYYY'), SYSDATE))))
START WITH assembly_item_id = :p_model_id
CONNECT BY NOCYCLE PRIOR component_item_id = assembly_item_id;

You might also like