Sample SQL's
Using Decode and aggregate functions.
SELECT item
, inventory
, product_family
FROM ( SELECT msi.segment1 item
, MAX( DECODE(mcs.category_set_name, 'Inventory', mc.segment1)) inventory
, MAX( DECODE(mcs.category_set_name, 'Product Family', mc.segment1)) product_family
FROM mtl_system_items_b msi
, mtl_item_categories mic
, mtl_categories mc
, mtl_category_sets mcs
WHERE msi.organization_id = mic.organization_id
AND msi.inventory_item_id = mic.inventory_item_id
AND msi.segment1 = :p_item
AND msi.organization_id = 103
AND mic.category_set_id = mcs.category_set_id
AND mic.category_id = mc.category_id
AND mc.structure_id = mcs.structure_id
GROUP BY msi.segment1)
SELECT *
FROM (SELECT msi.segment1 item
, mcs.category_set_name category_set
, mc.segment1
FROM mtl_system_items_b msi
, mtl_item_categories mic
, mtl_categories mc
, mtl_category_sets mcs
WHERE 1 = 1
AND msi.inventory_item_id = mic.inventory_item_id
AND msi.organization_id = mic.organization_id
AND msi.segment1 = :p_item
AND msi.organization_id = 103
AND mic.category_set_id = mcs.category_set_id
AND mic.category_id = mc.category_id
AND mc.structure_id = mcs.structure_id)
PIVOT XML (MAX( segment1) AS category --<-- pivot_clause
FOR( category_set) --<-- pivot_for_clause
IN (select category_set_name from mtl_category_sets))
--<-- pivot_in_clause
SELECT *
FROM (SELECT msi.segment1 item
, mcs.category_set_name category_set
, mc.segment1
FROM mtl_system_items_b msi
, mtl_item_categories mic
, mtl_categories mc
, mtl_category_sets mcs
WHERE 1 = 1
AND msi.inventory_item_id = mic.inventory_item_id
AND msi.organization_id = mic.organization_id
AND msi.segment1 = :p_item
AND msi.organization_id = 103
AND mic.category_set_id = mcs.category_set_id
AND mic.category_id = mc.category_id
AND mc.structure_id = mcs.structure_id)
PIVOT (MAX( segment1) AS category --<-- pivot_clause
FOR( category_set) --<-- pivot_for_clause
IN ('Inventory', 'Series', 'Model')) --<-- pivot_in_clause
Happy New Year 2023...! This is a blog for Oracle ERP lovers. BLOG - Begin Learning Oracle with Girish. :-)
Pages
OracleEBSpro is purely for knowledge sharing and learning purpose, with the main focus on Oracle E-Business Suite Product and other related Oracle Technologies.
I'm NOT responsible for any damages in whatever form caused by the usage of the content of this blog.
I share my Oracle knowledge through this blog. All my posts in this blog are based on my experience, reading oracle websites, books, forums and other blogs. I invite people to read and suggest ways to improve this blog.
I share my Oracle knowledge through this blog. All my posts in this blog are based on my experience, reading oracle websites, books, forums and other blogs. I invite people to read and suggest ways to improve this blog.
Subscribe to:
Post Comments (Atom)
You have written an excellent blog. I learned something new from your Content. Keep sharing this kind of informative blog.
ReplyDeleteOracle DBA Responsibilities
DBA Activities