Rev 64 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/* Bom Compare */SELECT DISTINCTpv.PV_ID AS PROD_ID,pkg.PKG_NAME,pv.PKG_VERSION,qry.CHANGE_TYPE,pd.IS_REJECTED,( CASEWHEN qry.CHANGE_TYPE = 'A' THEN'LIMG_ADDED'WHEN qry.CHANGE_TYPE = 'U' THEN'LIMG_UPDATED'ELSE'LIMG_REMOVED'END ) AS DIFF_ICON,pkg.PKG_ID,pv.IS_PATCHFROM (/* ADDED PATCHES ONLY */SELECT 'A' AS CHANGE_TYPE, newbom.PROD_ID, newbom.PKFROM (SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PKFROM 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 NOT pv.IS_PATCH IS NULLAND bc.BOM_ID = :COMPARE_BOM_ID) newbom,(SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PKFROM 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 NOT pv.IS_PATCH IS NULLAND bc.BOM_ID = :BOM_ID) oldbomWHERE newbom.PK = oldbom.PK (+)AND newbom.PROD_ID = oldbom.PROD_ID (+)AND oldbom.PK IS NULLUNION/* ADDED PRODUCTS ONLY */SELECT DECODE( oldbom.PROD_ID,NULL, 'A', 'U' ) AS CHANGE_TYPE,newbom.PROD_ID, newbom.PKFROM (SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,pv.PKG_ID,NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXTFROM 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) newbom,(SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,pv.PKG_ID,NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXTFROM 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) oldbomWHERE newbom.PK = oldbom.PK (+)--AND newbom.PROD_ID = oldbom.PROD_ID (+)AND newbom.PKG_ID = oldbom.PKG_ID (+)AND newbom.V_EXT = oldbom.V_EXT (+)AND ( oldbom.PROD_ID != newbom.PROD_ID OR oldbom.PROD_ID IS NULL )AND newbom.PROD_ID NOT IN(SELECT osc.PROD_IDFROM 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)UNION/* REMOVED PRODUCTS ONLY*/SELECT 'R' AS CHANGE_TYPE, oldbom.PROD_ID, oldbom.PKFROM (SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,pv.PKG_ID,NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXTFROM 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) newbom,(SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PK,pv.PKG_ID,NVL( pv.V_EXT, '|LINK_A_NULL|' ) AS V_EXTFROM 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) oldbomWHERE newbom.PK (+) = oldbom.PK--AND newbom.PROD_ID (+) = oldbom.PROD_IDAND newbom.PKG_ID (+) = oldbom.PKG_IDAND newbom.V_EXT (+) = oldbom.V_EXTAND newbom.PK IS NULLUNION/* REMOVED PATCHES */SELECT 'R' AS CHANGE_TYPE, oldbom.PROD_ID, oldbom.PKFROM (SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PKFROM 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 NOT pv.IS_PATCH IS NULLAND bc.BOM_ID = :COMPARE_BOM_ID) newbom,(SELECT osc.PROD_ID,nn.NODE_NAME ||'_'|| os.OS_NAME AS PKFROM 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 NOT pv.IS_PATCH IS NULLAND bc.BOM_ID = :BOM_ID) oldbomWHERE newbom.PK (+) = oldbom.PKAND newbom.PROD_ID (+) = oldbom.PROD_IDAND newbom.PK IS NULL) qry,PACKAGE_VERSIONS pv,PACKAGES pkg,PRODUCT_DETAILS pdWHERE qry.PROD_ID = pv.PV_IDAND pv.PKG_ID = pkg.PKG_IDAND pd.PROD_ID (+) = qry.PROD_IDORDER BY UPPER(pkg.PKG_NAME)