OVH Cloud OVH Cloud

requete hierarchie

5 réponses
Avatar
Thierry
Bonjour,

Est il possible de réaliser une requete SQL sur la meme table qui me
permette de remonter toutes les lignes d'une hiérarchie "PERE - FILS" ?
Sachant que le pere peut etre aussi un fils

exemple :
tant que pere exsite
select * from x where pere in (select fils from x...
fin tant que

Merci de me donner une piste

Thierry

5 réponses

Avatar
Matteo
Salut,

Voici un excellent article qui devrait t'aider à te mettre sur la piste:

http://sqlpro.developpez.com/cours/arborescence/

J'éspère que cela correspond à ce que tu recherches...

"Thierry" <== a écrit dans le message de news:

Bonjour,

Est il possible de réaliser une requete SQL sur la meme table qui me
permette de remonter toutes les lignes d'une hiérarchie "PERE - FILS" ?
Sachant que le pere peut etre aussi un fils

exemple :
tant que pere exsite
select * from x where pere in (select fils from x...
fin tant que

Merci de me donner une piste

Thierry



Avatar
Fred BROUARD
Bonjour,

Thierry a écrit :
Bonjour,

Est il possible de réaliser une requete SQL sur la meme table qui me
permette de remonter toutes les lignes d'une hiérarchie "PERE - FILS" ?
Sachant que le pere peut etre aussi un fils



Soit vous êtes en version 2000 et alors l'article que j'ai écrit sur la
modélisation des arborescences par intervalle va répondre à votre
attente (dérécursivation) :
http://sqlpro.developpez.com/cours/arborescence/

Soit vous êtes en version 2005 et vous pouvez écrire une requête
récursive à l'aide de la CTE et je vous invite à lire le papier que j'ai
écrit sur le sujet :
http://www.sqlservercentral.com/columnists/fBROUARD/recursivequeriesinsql1999andsqlserver2005.asp
Si vous avez des difficultés avec l'anglais, je peut vous envoyer par
mail privé la version française.

Sincères salutations


exemple :
tant que pere exsite
select * from x where pere in (select fils from x...
fin tant que

Merci de me donner une piste

Thierry






--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Thierry
Merci pour ces pistes, mais, je ne peux pas (pour l'instant) modifier la
base pour gerer la hirarchie par intervalle.

Thierry


"Fred BROUARD" a écrit dans le message de news:

Bonjour,

Thierry a écrit :
Bonjour,

Est il possible de réaliser une requete SQL sur la meme table qui me
permette de remonter toutes les lignes d'une hiérarchie "PERE - FILS" ?
Sachant que le pere peut etre aussi un fils



Soit vous êtes en version 2000 et alors l'article que j'ai écrit sur la
modélisation des arborescences par intervalle va répondre à votre attente
(dérécursivation) :
http://sqlpro.developpez.com/cours/arborescence/

Soit vous êtes en version 2005 et vous pouvez écrire une requête récursive
à l'aide de la CTE et je vous invite à lire le papier que j'ai écrit sur
le sujet :
http://www.sqlservercentral.com/columnists/fBROUARD/recursivequeriesinsql1999andsqlserver2005.asp
Si vous avez des difficultés avec l'anglais, je peut vous envoyer par mail
privé la version française.

Sincères salutations


exemple :
tant que pere exsite
select * from x where pere in (select fils from x...
fin tant que

Merci de me donner une piste

Thierry




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************


Avatar
Fred BROUARD
Thierry a écrit :
Merci pour ces pistes, mais, je ne peux pas (pour l'instant) modifier la
base pour gerer la hirarchie par intervalle.



Si vous êtes en version 2000 donc pas de solution

Mais vous vous méprenez....
En effet il n'y a pas besoin de modifier la table. Vous pouvez rajouter
une table à côté pour gérer ce mode et ajoutez les triggers nécessaire à
la table originale pour piloter cette nouvelle table.

Sachez qu'une loi des SGBDR (du D. Codd d'ailleurs) dit que l'on ne
modifie pas le comportement d'une base de données en rajoutant une
table, une vue ou tout autre objet...
Heureusement d'ailleurs !

A +



Thierry


"Fred BROUARD" a écrit dans le message de news:

Bonjour,

Thierry a écrit :
Bonjour,

Est il possible de réaliser une requete SQL sur la meme table qui me
permette de remonter toutes les lignes d'une hiérarchie "PERE - FILS" ?
Sachant que le pere peut etre aussi un fils


Soit vous êtes en version 2000 et alors l'article que j'ai écrit sur la
modélisation des arborescences par intervalle va répondre à votre attente
(dérécursivation) :
http://sqlpro.developpez.com/cours/arborescence/

Soit vous êtes en version 2005 et vous pouvez écrire une requête récursive
à l'aide de la CTE et je vous invite à lire le papier que j'ai écrit sur
le sujet :
http://www.sqlservercentral.com/columnists/fBROUARD/recursivequeriesinsql1999andsqlserver2005.asp
Si vous avez des difficultés avec l'anglais, je peut vous envoyer par mail
privé la version française.

Sincères salutations

exemple :
tant que pere exsite
select * from x where pere in (select fils from x...
fin tant que

Merci de me donner une piste

Thierry



--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Avatar
Thierry
Merci pour ce complement d'information... Je vais essayer cette option.

Thierry


"Fred BROUARD" a écrit dans le message de news:

Thierry a écrit :
Merci pour ces pistes, mais, je ne peux pas (pour l'instant) modifier la
base pour gerer la hirarchie par intervalle.



Si vous êtes en version 2000 donc pas de solution

Mais vous vous méprenez....
En effet il n'y a pas besoin de modifier la table. Vous pouvez rajouter
une table à côté pour gérer ce mode et ajoutez les triggers nécessaire à
la table originale pour piloter cette nouvelle table.

Sachez qu'une loi des SGBDR (du D. Codd d'ailleurs) dit que l'on ne
modifie pas le comportement d'une base de données en rajoutant une table,
une vue ou tout autre objet...
Heureusement d'ailleurs !

A +



Thierry


"Fred BROUARD" a écrit dans le message de
news:
Bonjour,

Thierry a écrit :
Bonjour,

Est il possible de réaliser une requete SQL sur la meme table qui me
permette de remonter toutes les lignes d'une hiérarchie "PERE - FILS" ?
Sachant que le pere peut etre aussi un fils


Soit vous êtes en version 2000 et alors l'article que j'ai écrit sur la
modélisation des arborescences par intervalle va répondre à votre
attente (dérécursivation) :
http://sqlpro.developpez.com/cours/arborescence/

Soit vous êtes en version 2005 et vous pouvez écrire une requête
récursive à l'aide de la CTE et je vous invite à lire le papier que j'ai
écrit sur le sujet :
http://www.sqlservercentral.com/columnists/fBROUARD/recursivequeriesinsql1999andsqlserver2005.asp
Si vous avez des difficultés avec l'anglais, je peut vous envoyer par
mail privé la version française.

Sincères salutations

exemple :
tant que pere exsite
select * from x where pere in (select fils from x...
fin tant que

Merci de me donner une piste

Thierry



--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************








--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************