modify the top query to replace EXISTS with joins
we need to modify the top query to replace EXISTS with joins.But how can i do, i am not sure
SELECT /*+ leading (mcs mic msi wdj mc) */
DISTINCT mso.organization_id, mso.primary_uom_quantity,
mso.reservation_quantity, mso.requirement_date,
mso.demand_source_header_id, mso.demand_source_line,
mso.demand_source_type, wdj.wip_entity_id,
wdj.primary_item_id, wdj.start_quantity
FROM apps.mtl_category_sets_tl mcs,
apps.mtl_item_categories mic,
apps.mtl_system_items_b msi,
apps.wip_discrete_jobs wdj,
apps.mtl_categories_b mc,
apps.msc_full_pegging@xxbetsytobilly.emrsn.com mfp,
apps.msc_demands@xxbetsytobilly.emrsn.com md,
apps.msc_sales_orders@xxbetsytobilly.emrsn.com mso,
apps.msc_supplies@xxbetsytobilly.emrsn.com ms,
apps.mtl_reservations mr
WHERE mso.demand_source_line = md.sales_order_line_id
AND mso.organization_id = md.organization_id
AND md.plan_id = mfp.plan_id
AND md.demand_id = mfp.demand_id
AND md.organization_id = mfp.organization_id
AND mfp.transaction_id = wdj.source_line_id
AND mfp.organization_id = wdj.organization_id
AND mso.reservation_quantity IS NOT NULL
AND wdj.organization_id = 2034
AND wdj.source_code = 'MSC'
AND mfp.organization_id = mso.organization_id
AND wdj.organization_id = md.organization_id
AND mso.organization_id = wdj.organization_id
and mfp.transaction_id = ms.transaction_id
AND mfp.organization_id = ms.organization_id
AND ms.order_type = 5
-- AND EXISTS (
-- SELECT 1
-- FROM apps.msc_supplies@xxbetsytobilly.emrsn.com ms
-- WHERE mfp.transaction_id = ms.transaction_id
-- AND mfp.organization_id = ms.organization_id
-- AND ms.order_type = 5)
AND msi.inventory_item_id = wdj.primary_item_id
AND wdj.organization_id = msi.organization_id
AND mic.category_set_id = mcs.category_set_id
AND msi.inventory_item_id = mic.inventory_item_id
AND msi.organization_id = mic.organization_id
AND mc.category_id = mic.category_id
AND mcs.category_set_name = 'EMR ATO-PTO Mdl Classification'
AND mcs.LANGUAGE = 'US'
AND wdj.primary_item_id = mic.inventory_item_id
AND mic.organization_id = wdj.organization_id
-- AND EXISTS (
-- SELECT 1
-- FROM apps.mtl_category_sets_tl mcs,
-- apps.mtl_item_categories mic,
-- apps.mtl_system_items_b msi,
-- apps.mtl_categories_b mc
-- WHERE msi.inventory_item_id = wdj.primary_item_id
-- AND wdj.organization_id = msi.organization_id
-- AND mic.category_set_id = mcs.category_set_id
-- AND msi.inventory_item_id = mic.inventory_item_id
-- AND msi.organization_id = mic.organization_id
-- AND mc.category_id = mic.category_id
-- AND mcs.category_set_name = 'EMR ATO-PTO Mdl Classification'
-- AND mcs.LANGUAGE = 'US'
-- AND wdj.primary_item_id = mic.inventory_item_id
-- AND mic.organization_id = wdj.organization_id)
AND wdj.wip_entity_id = mr.supply_source_header_id
AND mfp.organization_id = mr.organization_id
AND wdj.source_code = 'MSC'
-- AND NOT EXISTS (
-- SELECT 1
-- FROM apps.mtl_reservations mr
-- WHERE wdj.wip_entity_id = mr.supply_source_header_id
-- AND mfp.organization_id = mr.organization_id
-- AND wdj.source_code = 'MSC')
Can anyone help?