begin process at 2010 03 18 07:24:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Requêtes

 > 

arborescence


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

arborescence

vendredi 23 novembre 2007 à 09:23:51 | arborescence

frbos

Bonjour

J'ai une table contenant des "CATEGORIES" de la forme :

ID | nom_categorie | IDParent

J'ai donc des categories, sous-categories, sous-sous categories, etc...

Ces categories sont utilisees dans une table "INCIDENTS"
Est-il possible de faire une requete recuperant tous les incidents d'une categorie ET de toutes ses sous-categories ?
Merci
J'utilise MSSQL
frb

samedi 24 novembre 2007 à 10:23:49 | Re : arborescence

dsaunier

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+




Cette discussion est classée dans : table, arborescence, categorie, categories, incidents


Répondre à ce message

Sujets en rapport avec ce message

Annonce [ par yanne1985 ] salute je suis entrain de realiser un site des annonce et je demande votre aide pour la conception de la base de donnée voila: j'ai plusieur table ou Schéma de données [ par MadM@tt ] Bonjour à tous,J'aurais besoin de votre avis au niveau de la conception d'une de mes tables.J'ai des sites à référencer dans un annuaire.J'ai une tabl besion d'aide pour l'architecture d'une ou deux table [ par Oziris ] salut a tous,je voudrer creer des categorie sur un petit moteur de recherche.pour cela j'ai creer 3 table sql :recherche -> ma table avec les entree r comment faire une replication de table entre 2 serveurs mysql? [ par fredericmaill ] j'ai 2 serveurs mysql et j'amerais faire une replication d'une table presente dans le serveurs A vers le serveru b, pour en temps reel les meme inform Plusieurs eregistrement dans un t-uple [ par juvamine ] Bonjour,J'ai une table table_commentaire[id_com,id_obj,intitule,libelle]1 id_obj peut avoir 1 ou plusieurs commentaires.Ex:id_com   id_obj   intitulé  Filtrer si paramètre est different de nulle [ par jesusonline ] Bonjour, j'ai 2 problèmes avec une procédure stockée sur SQL server 2000D'une part, j'aimerais filtrer mes articles par catégorie, si @IDCat est diffe Table produit. Un produit a plusieurs prix [ par Cyru_s ] Bonjour, Je débute avec les bases de données. Je souhaite faire une base de données de matériel avec mysql. La table produit ressemblera un peu à cell Creation de table sql server [ par emmanuel9 ] Bonjour à tous, Je voudrais créer une base de données avec sql server : - en faite j'ai plusieurs table comme "personne" et pour cet table j'ai un Ceation de table [ par aminekh ] Bonjours a tous;j'aimerai bien savoir comment creer une table et la mettre a jours a partir de deux autre table c-à-d creer une table qui va contenir Probleme ALTER TABLE DANS BOUCLE WHILE AVEC NOM DE TABLE DIFFERENT A CHAQUE ITERATION [ par vds ] Bonjour, je travaille sous sql server et je dois écrire une procédure stockée qui: -Récupere et enregistre dans la table "TableTemp" le nom de certain


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales