Rev 5634 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/* Bom Removed Product Location */select * from (WITH newbom AS (-- A set of elements from the NEW BOM that have no corresponding element in the old bom-- Element are matched on a Full-Key (FK) made up of the NODE_NAME, OS_NAME and PROD_ID-- Note. NODE_ID and OS_ID are not global, but are local to the BOM and are thus-- useless for matching purposes.SELECT * FROM (SELECT osc.PROD_ID,CASE WHEN pkg.PKG_ID = 11151 THEN nn.NODE_NAME ||'_'|| os.OS_NAME || '_' || 'NOTES_' || osc.PROD_ID ELSE nn.NODE_NAME ||'_'|| os.OS_NAME || '_' || pv.PKG_ID || NVL( pv.V_EXT, '|.NULL|' ) END as PK,nn.NODE_NAME ||'_'|| os.OS_NAME || '_' || osc.PROD_ID as FK,nt.NODE_ICON,nn.NODE_ID,nn.NODE_NAME,os.OS_ID,os.OS_NAME,pkg.PKG_ID,pkg.PKG_NAME,pv.PKG_VERSIONFROM OS_CONTENTS osc,OPERATING_SYSTEMS os,NETWORK_NODES nn,NODE_TYPES nt,BOM_CONTENTS bc,PACKAGE_VERSIONS pv,PACKAGES pkgWHERE osc.OS_ID = os.OS_IDAND os.NODE_ID = nn.NODE_IDAND bc.NODE_ID = nn.NODE_IDAND osc.PROD_ID = pv.PV_IDAND pv.PKG_ID = pkg.PKG_IDAND nn.NODE_TYPE_ID = nt.NODE_TYPE_IDAND bc.BOM_ID = :BOM_ID)WHERE FK NOT IN (SELECTnn.NODE_NAME ||'_'|| os.OS_NAME || '_' || osc.PROD_ID as FKFROM OS_CONTENTS osc,OPERATING_SYSTEMS os,NETWORK_NODES nn,BOM_CONTENTS bc,PACKAGE_VERSIONS pvWHERE osc.OS_ID = os.OS_IDAND os.NODE_ID = nn.NODE_IDAND bc.NODE_ID = nn.NODE_IDAND osc.PROD_ID = pv.PV_IDAND pv.IS_PATCH IS NULLAND bc.BOM_ID = :COMPARE_BOM_ID)),oldbom as (-- A set of elements from the OLD BOM that have no corresponding element in the NEW bom-- Element are matched on a Full-Key (FK) made up of the NODE_NAME, OS_NAME and PROD_ID-- Note. NODE_ID and OS_ID are not global, but are local to the BOM and are thus-- useless for matching purposes.SELECT * FROM (SELECT osc.PROD_ID,CASE WHEN pkg.PKG_ID = 11151 THEN nn.NODE_NAME ||'_'|| os.OS_NAME || '_' || 'NOTES_' || osc.PROD_ID ELSE nn.NODE_NAME ||'_'|| os.OS_NAME || '_' || pv.PKG_ID || NVL( pv.V_EXT, '|.NULL|' ) END as PK,nn.NODE_NAME ||'_'|| os.OS_NAME || '_' || osc.PROD_ID as FK,nt.NODE_ICON,nn.NODE_ID,nn.NODE_NAME,os.OS_ID,os.OS_NAME,pkg.PKG_ID,pkg.PKG_NAME,pv.PKG_VERSIONFROM OS_CONTENTS osc,OPERATING_SYSTEMS os,NETWORK_NODES nn,NODE_TYPES nt,BOM_CONTENTS bc,PACKAGE_VERSIONS pv,PACKAGES pkgWHERE osc.OS_ID = os.OS_IDAND os.NODE_ID = nn.NODE_IDAND bc.NODE_ID = nn.NODE_IDAND osc.PROD_ID = pv.PV_IDAND pv.PKG_ID = pkg.PKG_IDAND nn.NODE_TYPE_ID = nt.NODE_TYPE_IDAND bc.BOM_ID = :COMPARE_BOM_ID)WHERE FK NOT IN (SELECTnn.NODE_NAME ||'_'|| os.OS_NAME || '_' || osc.PROD_ID as FKFROM OS_CONTENTS osc,OPERATING_SYSTEMS os,NETWORK_NODES nn,BOM_CONTENTS bc,PACKAGE_VERSIONS pvWHERE osc.OS_ID = os.OS_IDAND os.NODE_ID = nn.NODE_IDAND bc.NODE_ID = nn.NODE_IDAND osc.PROD_ID = pv.PV_IDAND pv.IS_PATCH IS NULLAND bc.BOM_ID = :BOM_ID)),newNodes as (-- A set of NODE_NAMES and NODE_ID from the new BOM-- Will be used to:-- Determine if the NODE exists in the new bom-- Map NODE_ID from the old bom to the new bom for displaySELECT nn.NODE_ID, NODE_NAME from bom_contents bc, NETWORK_NODES nn where bc.bom_id = :BOM_ID AND bc.NODE_ID = nn.NODE_ID),newOS as (-- A set of OS_ID, OS_NAME and NODE_NAME from the new BOM-- Will be used to:-- Determine if the OS_ID exists in the new bom-- Map OS_ID from the old bom to the new bom for displaySELECT OS_ID, OS_NAME, NODE_NAME from operating_systems os, bom_contents bc, NETWORK_NODES nn where bc.bom_id = :BOM_ID and bc.node_id = os.node_id AND bc.NODE_ID = nn.NODE_ID)SELECToldbom.PROD_ID as PROD_ID,newNodes.NODE_ID as NODE_ID,oldbom.NODE_ICON,oldbom.NODE_NAME,newOS.OS_ID as OS_ID,oldbom.OS_NAME,oldbom.PKG_ID,oldbom.PKG_NAME,oldbom.PKG_VERSION,oldbom.PK,newbom.PROD_ID AS NPROD_ID,NVL2(newNodes.NODE_NAME,1,null) as nodeExists,NVL2(newOS.OS_NAME,1,null) as osExistsfrom newbomfull outer join oldbom on newbom.PK = oldbom.PKleft outer join newNodes on oldbom.NODE_NAME = newNodes.NODE_NAMEleft outer join newOS on oldbom.OS_NAME = newOS.OS_NAME and oldbom.NODE_NAME = newOS.NODE_NAME) wherePROD_ID = :PROD_IDAND NPROD_ID IS NULLORDER BY UPPER(PK)