Hello,
J’ai un petit souci pour sortir une requête et j’aimerais bien un petit coup de pouce
Ma base de données contient toutes les données nécessaires pour détailler l’architecture d’une structure.
Je prendrais l’exemple de la voiture comme structure dans ce post :
Voici ci-dessous les tables de ma base de données simplifié au maximum
Table de données pures
Section (ID, lieu) : section de la voiture (par exemple : partie avant, partie arrière)
Besoin (ID, reference) : besoin à remplir pour la voiture (par exemple : besoin de pneus)
Solution (ID, reference) : réponse au besoin contenu dans la table Besoin (par exemple : pneu pluie, pneu neige, etc.)
ConfigSolution (ID, reference) : configuration de la solution
Equipement (ID, reference) : sous-partie de la solution (par exemple : boulon de taille 14)
Assemblage (ID, reference) : assemblage d’équipements (par exemple boulons_14 représentent tous les boulons de taille 14 nécessaire pour une solution)
Tables de liens
Lien_Section_Besoin (ID, IDR_Section, IDR_Besoin)
Lien_Besoin_ConfigSolution (ID, IDR_Besoin, IDR_ConfigSolution)
Lien_ConfigSolution_Solution (ID, IDR_ConfigSolution, IDR_Solution)
Lien_Solution_Assemblage_Equipement (ID, IDR_Solution, IDR_Assemblage, IDR_Equipement)
Lien_Assemblage_Assemblage (ID, IDR_Parent, IDR_Fils)
But de la requête : afficher le détail de toutes les tables de données pures en faisant le lien depuis les sections jusqu’aux équipements.
Difficulté : les assemblages peuvent contenir d’autres assemblages de façon non quantifiable (i.e. : on peut avoir 1 assemblage lié à une solution comme avoir 1 assemblage lui-même contenant 1 assemblage lui-même contenant 1 assemblage etc. et chacun contenant des équipements)
Autres informations :
1 solution peut être liée directement à 0 ou X équipements
1 solution peut être liée directement à 0 ou X assemblages
1 assemblage peut être lié directement à 1 ou X équipements
1 assemblage peut être lié directement à 0 ou X assemblages
1 configSolution peut être liée directement à 1 solution
1 besoin peut être lié directement à 0 ou X configSolutions
1 section peut être lié directement à 1 ou X besoins
1 besoin peut être lié directement à 1 ou X sections
1 configSolution peut être lié à 1 ou X besoins
1 équipement peut être lié à 0 ou X solutions
1 équipement peut être lié à 0 ou X assemblages
1 assemblage peut être lié à 0 ou X solutions
SGBD : SQL Server 2008
Je suis partie sur les CTE (Common Table Expression) pour afficher tous les assemblages de manière récursive mais je galère à faire le CTE avec toutes les jointures pour remonter jusqu’à la section et pour descendre jusqu’aux équipements
Quelqu'un peut-il me filer un coup de main s'il vous plait ?
Partager