|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre habitué
![]() Inscription : janvier 2004 Messages : 507 ![]() |
Bonjour,
J'ai une table CLIENT avec ses données ID IDCODE IDMGR MCODE ZONE 1 B 1 B 8 2 B 3 B 8 3 B 3 B 8 4 B 3 B 8 5 B 4 B 8 et ce que je souhaiterais c'est quand je passe un client à la requête(pour une zone) je ramène tous ses manager(mgr) je remonte la hiérarchie. ex : si je prend le client 5 B alors je dois ramener son mgr c'est à dire 4 B. Comme 4 B a pour mgr 3 B , je dois alors aussi ramener 3 B et comme 3 B a pour manager 3 B je m'arrête la, car quand le client = le manager alors c'est qu'on est au sommet de la chaine. j'ai testé cette requête : Code :
que 5 B 4 B et s'arrête , elle ne remonte pas la hiérarchie jusqu'au sommet. au lieu de Citation:
j'ai sans douter oublié un truc dans la requête mais je ne vois pas Merci |
|||
|
|
00
|
|
|
#2 | ||||
![]() ![]() |
Il faut déjà intervertir le PRIOR :
Code :
Je pense qu'elle est filtrée à cause du NOCYCLE, comme elle boucle sur elle-même, le moteur la supprime du résultat. Une petite astuce afin d'éviter la boucle est de gérer ce cas avec un nullif : Code :
__________________
Email : http://scr.im/waldar |
||||
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2010 Messages : 190 ![]() |
Bonjour,
Tu veux absolument une seule requête ou bien tu peux utiliser une boucle? |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : janvier 2004 Messages : 507 ![]() |
merci waldar
je vais tester et donc cela proviendrait du nocycle sinon oui je peux utiliser une boucle mais comme j'ai vu que les requete hierarchique existait je voulais d abord voir si c etait possible avec |
|
|
00
|
|
|
#5 | |
|
Membre habitué
![]() Inscription : janvier 2004 Messages : 507 ![]() |
j'ai l'impression que le deuxieme cas ne marche pas
celui avec le nullif quand je le lances j 'ai ceci Citation:
|
|
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : janvier 2004 Messages : 507 ![]() |
je pense que c'est impossible de le faire sans passer par une boucle
ça a pas l'air vraiment au point le connect by |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 739 ![]() |
De mémoire, mais je ne suis pas un expert dans le domaine, une requete recursive ne pourrait-elle pas convenir ?
Tutoriel
__________________
Je ne réponds pas aux questions techniques par MP, le forum est là pour cela. La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Si mais il faut au moins Oracle 11g
|
|
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() Inscription : janvier 2004 Messages : 507 ![]() |
je suis en 10g
c'est sans doute pour cela par contre ce que je ne comprends pas c'est quand j'utilise ma requête initiale et que j'inverse le prior comme ci-dessous : Code :
??? |
||
|
|
00
|
|
|
#10 |
![]() ![]() |
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#11 |
|
Membre habitué
![]() Inscription : janvier 2004 Messages : 507 ![]() |
pour que j essai de trouver une autre solution pourle faire,
je suis obliger de faire une fonction recursive en pl/sql ? |
|
|
00
|
|
|
#12 |
![]() ![]() |
Non pas nécessairement.
Sur le jeu de données fourni, une solution a été trouvée. Vous dites que ça ne marche pas, mais sans nouveau jeu de données point de salut, je ne peux pas deviner ce qui ne fonctionne pas. PS : connect by est une fonctionnalité qui existe depuis 1978, certes elle n'est pas parfaite (elle ne couvre pas tous les arbres récursifs contrairement aux CTE), mais on ne peut pas dire que ce n'est pas au point.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#13 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
Citation:
Voir http://laurentschneider.com/wordpres...rsive-cte.html inspiré de http://www.developpez.net/forums/d74...-hierarchique/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com