Sorte de recursivité en SQL ?
edouard
-
edouard -
edouard -
salut !!
Je vais simplifier mon cas de figure pour exposer mon probleme :
j'ai une table avec des articles et leur cout, et une table nomenclature avec la composition de ces mm articles
Ces tables se presentent sous la forme suivante :
Articles(RefArticle, cout)
Nomenclature(RefArticle, RefComposant, quantité)
(avec article et composant qui sont des clefs etrangeres qui pointent sur le Articles.RefArticle ...)
Ce que j veux c'est une requete qui calcule le cout d'un article en sommant le cout des articles qui le composent, sachant que les composants eux-mm peuvent etre composes de plusieurs articles ...
Et c'est donc pour ca que je voudrais faire une requete "recursive" qui pour chaque composant calcule le cout en sommant les couts de ses composants ... eux mm calcules en sommant les couts des composants du composant ...
J'ai beau reflechir j'arrive pas a trouver de moyen .. vous pensez que c'est possible ca de faire de la recursivite en SQL ?
(pour l'instant j le fais via du code VB et j'ecris le resultat sous Excel mais c'est assez long .. et comme c'est pour du traitement de masse j'aimerais optimiser en faisant par une requete ...)
Merci d'avance ! :o)
@ +
edouard.
Je vais simplifier mon cas de figure pour exposer mon probleme :
j'ai une table avec des articles et leur cout, et une table nomenclature avec la composition de ces mm articles
Ces tables se presentent sous la forme suivante :
Articles(RefArticle, cout)
Nomenclature(RefArticle, RefComposant, quantité)
(avec article et composant qui sont des clefs etrangeres qui pointent sur le Articles.RefArticle ...)
Ce que j veux c'est une requete qui calcule le cout d'un article en sommant le cout des articles qui le composent, sachant que les composants eux-mm peuvent etre composes de plusieurs articles ...
Et c'est donc pour ca que je voudrais faire une requete "recursive" qui pour chaque composant calcule le cout en sommant les couts de ses composants ... eux mm calcules en sommant les couts des composants du composant ...
J'ai beau reflechir j'arrive pas a trouver de moyen .. vous pensez que c'est possible ca de faire de la recursivite en SQL ?
(pour l'instant j le fais via du code VB et j'ecris le resultat sous Excel mais c'est assez long .. et comme c'est pour du traitement de masse j'aimerais optimiser en faisant par une requete ...)
Merci d'avance ! :o)
@ +
edouard.
A voir également:
- Sorte de recursivité en SQL ?
- Logiciel sql - Télécharger - Bases de données
- Remettre un pc en sortie d'usine - Guide
- Aucun son ne sort de mon pc - Guide
- Blob sql ✓ - Forum Webmastering
- Faites en sorte que la cellule a1 affiche exactement ce qui est montré sur cette image. quel mot apparaît en b1 ? ✓ - Forum Excel
5 réponses
tu pourrais utiliser la représentation intervallaire
attention ça fait mal aux yeux:
http://membres.lycos.fr/sqlpro/Tree/SQL_tree.htm
kinder.surprise,
le maton du matou
attention ça fait mal aux yeux:
http://membres.lycos.fr/sqlpro/Tree/SQL_tree.htm
kinder.surprise,
le maton du matou
Si le volume des données est compatible avec la mémoire vive, voire vituelle, la solution peut passer par un déchargement complet de la base (parcours séquentiel d'une table à la fois, donc rapide). Il reste alors à développer ses propres outils d'extraction.
Solution vue pour traiter des droits des utilisateurs sur MainFrame (IBM/RACF). J'ai oublié le nom du logiciel, je ne sais pas en quel langage les primitives de lecture étaient programmées (ASM ?), mais je me souviens que l'image de la base était disponible en quelques secondes !
Solution vue pour traiter des droits des utilisateurs sur MainFrame (IBM/RACF). J'ai oublié le nom du logiciel, je ne sais pas en quel langage les primitives de lecture étaient programmées (ASM ?), mais je me souviens que l'image de la base était disponible en quelques secondes !
Arg !
Récursivité en SQL : mauvaise idée.
Ceci dit, on peut très bien faire des procédures stockées récursives, mais c'est immonde.
Ou bien utiliser des curseurs et simuler une pile avec une table auto-incrémentée... ggaaarglleu... je m'égarre.
Non, il n'est pas raisonnable de faire de la résursivité en SQL.
Désolé !
Récursivité en SQL : mauvaise idée.
Ceci dit, on peut très bien faire des procédures stockées récursives, mais c'est immonde.
Ou bien utiliser des curseurs et simuler une pile avec une table auto-incrémentée... ggaaarglleu... je m'égarre.
Non, il n'est pas raisonnable de faire de la résursivité en SQL.
Désolé !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question