J'ai une table de structure de lien avec ID et parentID.La fonction récursive Sql affiche uniquement les nœuds ayant une relation spécifique
ID, Parent, name
1,1
2,1
3,2
4,3
5,3
À cette table, j'ai une table de relation structure_article dans ce tableau j'ai relation entre un lien et un article.
struture_article
structid, articleID
4,1000
4,1001
5,1002
Chaque article dans ce tableau ont un fournisseur. Maintenant, j'essaie de créer une fonction récursive qui crée l'arbre si je choisis un fournisseur spécifique.
Article Table
ArticleID, SUPPLIER ID
1000,1
1001,2
1002,2
Si je cueille des articles avec le fournisseur 1 alors je veux la fonction de me montrer la structure des arbres qui ont des articles de ce fournisseur.
J'ai maintenant 20 fournisseurs et 300 liens dans la base de données maintenant je veux seulement montrer des articles des fournisseurs que je choisis. Je ne veux pas de hochements de tête vides.
Est-ce encore possible créer avec une fonction récursive dans Sql Server version 2008?
Je tyied wiht ce code, le problème est que je reçois seulement hoche la tête qui ont des articles reliés
WITH a
AS (SELECT *
FROM structure
WHERE parent = 125
UNION ALL
SELECT m.*
FROM structure m
JOIN a
ON m.parent = a.internidstructure)
SELECT *
FROM a
WHERE internidstructure IN (SELECT DISTINCT(internidstructure)
FROM dbo.articles
INNER JOIN dbo.structure_article
ON dbo.articles.internidarticle =
dbo.structure_article.internidarticle
WHERE (dbo.articles.internidsupplier IN (SELECT
internidsupplier
FROM site_sup
WHERE
internidsite = 1)))
ORDER BY parent,
sortno
Pouvez-vous donner un exemple de votre sortie attendue. – Griffin
Il serait également utile que vos données d'exemple correspondent exactement au schéma de l'exemple de requête. – Griffin