1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
SELECT RTRIM(SUBSTR(ARBRE_NUM, 1+LENGTH('#'), DECODE(INSTR(ARBRE_NUM,'#',1,2),0,LENGTH(ARBRE_NUM), INSTR(ARBRE_NUM,'#',1,2)-(1+LENGTH('#'))))) ROOT_NUM,
RTRIM(SUBSTR(ARBRE_IDC, 1+LENGTH('#'), DECODE(INSTR(ARBRE_IDC,'#',1,2),0,LENGTH(ARBRE_IDC), INSTR(ARBRE_IDC,'#',1,2)-(1+LENGTH('#'))))) ROOT_IDC
, C.* FROM (
SELECT B.*, LEVEL NIVEAU,
SYS_CONNECT_BY_PATH(B.NUMERO, '#')||NVL2(B.NUMERO,'',B.CODE_MAT) ARBRE_NUM,
SYS_CONNECT_BY_PATH(B.IDNOEUD, '#') ARBRE_IDC
FROM (
SELECT A.ARB_IDNOEUD IDNOEUD, A.ARB_IDMAT IDMAT, A.ARB_NUMERO NUMERO, A.ARB_QTE, A.ARB_FEUILLE FEUILLE,
A.ARB_NOEUD_PERE.ARB_NUMERO PERE_NUMERO, A.ARB_NOEUD_PERE.ARB_IDNOEUD PERE_IDNOEUD,
A.ARB_PROP_NOEUD.PND_LOT_ID LOT_ID,
M.CODFAMMAT, M.CODE_MAT, M.DESIG_MAT, M.TYPE_MAT,
E.CODE_EMPL, E.CODE_LIEU_S, E.BATIMENT_EMPL
, J.PRJ_CODE,SF.SFM_CODE, C1.CODE_CLI CODE_CLI, C2.CODE_CLI CODE_CLI_DO
FROM (SELECT A.*
FROM arbre_contenant a, (SELECT * FROM TABLE (SELECT get_row_idnoeuds_en_relation (v_idNoeud, v_numero) FROM DUAL))
--FROM arbre_contenant a, (SELECT * FROM TABLE (SELECT get_row_idnoeuds_en_relation (3851, '1001732%') FROM DUAL))
WHERE a.arb_idnoeud = ident
) A, MATERIEL M, STOCK_CONTENANT SC, EMPLACEMENT E, PROJET J, SFAMMAT SF, CLIENT C1, CLIENT C2
WHERE A.ARB_IDMAT = M.IDMAT
AND A.ARB_IDNOEUD = SC.SC_ARB_IDNOEUD(+)
AND SC.SC_IDEMPL = E.IDEMPL(+)
AND M.PRJ_ID = J.PRJ_ID(+)
AND M.SFM_ID = SF.SFM_ID(+)
AND M.IDCLI = C1.IDCLI(+)
AND M.IDCLI_DO = C2.IDCLI(+)
) B
START WITH B.PERE_NUMERO IS NULL
CONNECT BY B.PERE_IDNOEUD = PRIOR B.IDNOEUD
) C; |
Partager