Rev 64 | Blame | Compare with Previous | Last modification | View Log | RSS feed
SELECT qry.*FROM (/* NETWORK NODE LEVEL */SELECT DECODE ( COUNT( os.os_id ),0, NULL,NULL, NULL,DECODE ( parent.node_id,:node_id, '-','+')) AS expand,parent.NODE_SEQ_NUM,parent.node_id,parent.NODE_NAME,parent.NODE_ICON,parent.os_id,parent.OS_NAME,parent.BOS_ICON,parent.prod_id,parent.prod_name,parent.SEQ_NUM,parent.CHANGE_LOG_FLAG,NULL AS IS_REJECTED,parent.NODE_VERSION,parent.NODE_LIFE_CYCLEFROM OPERATING_SYSTEMS os,(SELECT nn.node_id AS node_id,nn.NODE_NAME,nt.NODE_ICON,0 AS os_id,'-' AS OS_NAME,NULL AS BOS_ICON,0 AS prod_id,'-' AS prod_name,0 AS SEQ_NUM,NULL AS CHANGE_LOG_FLAG,nn.NODE_VERSION,nn.NODE_LIFE_CYCLE,bc.SEQ_NUM AS NODE_SEQ_NUMFROM NETWORK_NODES nn,BOM_CONTENTS bc,NODE_TYPES ntWHERE bc.node_id = nn.node_idAND nn.node_type_id = nt.node_type_idAND bc.bom_id IN (/* Ensures that node_id IS IN bom_id */SELECT DISTINCT bc.bom_idFROM BOM_CONTENTS bcWHERE bc.bom_id = :bom_idAND (( bc.node_id = bc.node_id AND :node_id = -1 ) OR( bc.node_id = :node_id AND :node_id != -1 )))) parentWHERE os.node_id (+) = parent.node_idGROUP BY parent.NODE_SEQ_NUM,parent.node_id,parent.NODE_NAME,parent.NODE_ICON,parent.os_id,parent.OS_NAME,parent.BOS_ICON,parent.prod_id,parent.prod_name,parent.SEQ_NUM,parent.CHANGE_LOG_FLAG,parent.NODE_VERSION,parent.NODE_LIFE_CYCLEUNION/* OS LEVEL */SELECT DECODE ( COUNT( * ),0, NULL,NULL, NULL,DECODE ( parent.node_id,:node_id, DECODE ( parent.os_id,:os_id, '-',DECODE ( parent.node_id,:node_id, DECODE ( :os_id, -1, '-', '+'))))) AS expand,parent.NODE_SEQ_NUM,parent.node_id,parent.NODE_NAME,parent.NODE_ICON,parent.os_id,parent.OS_NAME,parent.BOS_ICON,parent.prod_id,parent.prod_name,parent.SEQ_NUM,parent.CHANGE_LOG_FLAG,NULL AS IS_REJECTED,parent.NODE_VERSION,parent.NODE_LIFE_CYCLEFROM OS_CONTENTS osc,(SELECT nn.node_id AS node_id,nn.NODE_NAME,NULL AS NODE_ICON,os.os_id AS os_id,os.OS_NAME,DECODE ( bt.BOS_ICON,NULL, 'i_generic_os.gif',bt.BOS_ICON) BOS_ICON,0 AS prod_id,'-' AS prod_name,0 AS SEQ_NUM,NULL AS CHANGE_LOG_FLAG,NULL AS NODE_VERSION,0 AS NODE_LIFE_CYCLE,bc.SEQ_NUM AS NODE_SEQ_NUMFROM NETWORK_NODES nn,BOM_CONTENTS bc,OPERATING_SYSTEMS os,BASE_ENV be,OS_BASE_ENV osbe,BOS_TYPES btWHERE bc.node_id = nn.node_idAND os.node_id = nn.node_idAND osbe.OS_ID (+) = os.OS_IDAND osbe.BASE_ENV_ID = be.base_env_id (+)AND be.BOS_ID = bt.bos_id (+)AND bc.bom_id = :bom_idAND nn.node_id = :node_id) parentWHERE osc.os_id (+) = parent.os_idGROUP BY parent.NODE_SEQ_NUM,parent.node_id,parent.NODE_NAME,parent.NODE_ICON,parent.os_id,parent.OS_NAME,parent.BOS_ICON,parent.prod_id,parent.prod_name,parent.SEQ_NUM,parent.CHANGE_LOG_FLAG,parent.NODE_VERSION,parent.NODE_LIFE_CYCLEUNION/* PRODUCTS LEVEL */SELECT NULL AS expand,bc.SEQ_NUM AS NODE_SEQ_NUM,nn.node_id AS node_id,nn.NODE_NAME,NULL AS NODE_ICON,os.os_id AS os_id,os.OS_NAME,NULL AS BOS_ICON,pv.pv_id AS prod_id,pkg.pkg_name || ' ' || pv.pkg_version AS prod_name,osc.SEQ_NUM,osc.CHANGE_LOG_FLAG,pd.IS_REJECTED,NULL AS NODE_VERSION,0 AS NODE_LIFE_CYCLEFROM NETWORK_NODES nn,BOM_CONTENTS bc,OPERATING_SYSTEMS os,OS_CONTENTS osc,PACKAGES pkg,PACKAGE_VERSIONS pv,PRODUCT_DETAILS pdWHERE pd.PROD_ID (+) = pv.PV_IDAND bc.node_id = nn.node_idAND os.node_id = nn.node_idAND pv.pkg_id = pkg.pkg_idAND osc.PROD_ID = pv.pv_idAND osc.os_id = os.os_idAND bc.bom_id = :bom_idAND nn.node_id = :node_idAND (( os.os_id = os.os_id AND :os_id = -1 ) OR( os.os_id = :os_id AND :os_id != -1 ))) qryORDER BY qry.NODE_SEQ_NUM, UPPER(qry.node_name), UPPER(qry.os_name), qry.seq_num