Bonjour, Sous Oracle (desole, je n'ai jamais utilise MSSQL), le plus simple est de cree une vue du type (categorie et 1ere sous-categorie): CREATE VIEW CATEGORIES...suivant la syntaxe MSSQL AS( SELECT C1.ID IDCAT, C2.ID , C1.NOM_CATEGORIE AS CATEGORIE, C2.NOM_CATEGORIE AS SOUS_CAT FROM CATEGORIES C1 INNER JOIN CATEGORIES C2 ON (C2.IDPARENT=C1.ID) WHERE C1.ID_PARENT IS NULL UNION ALL SELECT ID IDCAT, ID , NOM_CATEGORIE AS CATEGORIE, '' AS SOUS_CAT
FROM CATEGORIES
WHERE ID_PARENT IS NOT NULL
) en gros, tu demande les enregistrements de C2 dont l'ID_PARENT est egal à l'ID que tu selectionne ds C1 + la categorie elle-meme si tu peux caracteriser un incident simplement par une categorie. Ensuite, tu dois avoir une autre table INCIDENT par exemple avec une cle etrangere vers ta table categorie par ex IDCAT et donc ta requete final pour avoir tes incidents sera du type: SELECT I.*, C.* FROM INCIDENT I INNER JOIN CATEGORIES C ON C.ID=I.IDCAT WHERE C.IDCAT=1
Cela doit pouvoir etre optimisable ms je n'ai pas de bdd sous la main... A adapter en fonction de la profondeur de tes sous-cat ( ds ta vue, tu rajoute autant de left outer join sur ta table categorie que de nombre de sous-sous-sous...categorie).
A+
|