Décidément, Oracle a décidé me m'ennuyer jusqu'au bout ce matin...
J'ai une table avec la structure suivante :
TIE (CODSOC, TYPTIE, SIGTIE, TYPGRP, SIGGRP, ...)
Souligné : Clé primaire
Gras : Foreign key sur TIE (CODSOC, TYPTIE, SIGTIE)
La table TIE contient donc des tiers.
Ils peuvent être regroupés sous un autre tiers.
Par exemple :
Magasin 1 et Magasin 2 sont regroupés dans un même point de livraison, qui lui-même est regroupé dans une plateforme régionale, qui est elle-même regroupée dans une centrale d'achat nationale, qui elle-même est regroupée dans une enseigne.
J'ai donc les données :
Je souhaite retrouver l'ensemble des parents du client M1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CODSOC TYPTIE SIGTIE TYPGRP SIGGRP NOMTIE 100 CLI M1 PDL P1 Magasin 1 100 CLI M2 PDL P1 Magasin 2 100 PDL P1 REG R1 PDL 1 100 REG R1 ACH A1 Plateforme 1 100 ACH A1 ENS E1 Centrale d'achat 1 100 ENS E1 Enseigne 1
Ca ne me retourne que la ligne M1... Pourquoi j'ai pas l'ensemble des parents ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT level, typtie, sigtie FROM tie WHERE codsoc = 100 CONNECT BY typtie = typgrp and sigtie = siggrp START WITH typtie = 'CLI' and sigtie = 'M1';
J'ai déjà tenté d'intervertir l'ordre des champs dans le connect by, mais ça ne change rien...
J'ai aussi tenté avec une CTE, mais j'ai pas trouvé la syntaxe pour faire une auto-jointure.
Partager