IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Arborescence & Count?


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut Arborescence & Count?
    Bonjour,

    Voici la structure simplifiée de ma DB :
    - T_CATEGORIES : id_cat, id_parentcat, cat_name
    - T_EVENEMENTS : id_evenement, id_cat, event_name
    - T_ITEM : id_item, id_evenement, item_name

    Avec comme schéma d'utilisation (sachant qu'il peut y avoir des sous-cat à l'infini) :
    - CAT 1
    ---- CAT 3 (id_parentcat = 1)
    ------ CAT 4 (id_parentcat = 3)
    -------- Evènement 1
    ------------- item 1
    ------------- item 2
    ------------- item 3
    -------- Evènement 2
    ------------- item 4
    ------------- item 5
    ------ CAT 5 (id_parentcat = 3)
    -------- Evènement 3
    ------------- item 6
    ------------- item 7

    - CAT 2
    -------- Evènement 4
    ------------- item 8
    Je souhaite compter le nombre d'évènements et le nombre d'items dans toutes les sous-cats donc par exemple :
    - Cat 1 : 3 évènements & 9 items
    - Cat 2 : 1 évènement & 1 item
    - Cat 4 : 2 évènements & 5 items

    Moi, je n'ai réussi qu'à faire la requete pour compter les évènements & items dans la catégorie selectionnées car dans ce cas il n'y a qu'à count(id_evenement) & cout(id_item) avec deux jointures.

    Comment (quitte à utiliser des boucles) compter tous les éléments dans toutes les catégories enfants?

    Merci d'avance :-)

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Il aurait mieux valu modéliser votre arborescense avec un mode intervallaire, comme indiqué dans l'article que j'ai écrit :
    http://sqlpro.developpez.com/cours/arborescence/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Effectivement mais je ne peux pas modifier le schéma de la Base de Données donc je dois faire avec.. Si quelqu'un à une solution ou un morceau de réponse qu'il n'hésite pas car je suis bloqué :/

    En fait je comtpe faire comme ca : ajouter deux colonnes (nbEvenements & nbItems) à chaque CATEGORIES. Puis, chaque minutes, lancer une procédure stockée qui va faire le compte de chaque evènements & items dans chaque catégorie et sous-catégories et sous-...-sous-catégorie et inscrire le total dans les colonnes. Comme ca j'appellerai simplement les deux colonnes dans le select qui seront à jour (d'une minute).

    Bonne idée (ou pas)?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Utilisez plutôt les services d'une vue indexée.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    Citation Envoyé par SQLpro
    Utilisez plutôt les services d'une vue indexée.

    A +
    Auriez-vous un exemple d'utilisation? J'ai regardé sur google et je ne vois pas bien comment cela pourrait m'être utile?

Discussions similaires

  1. Multiple Count
    Par Antichoc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2003, 11h19
  2. créer une arborescence windows sous forme d'arbre java
    Par chupachoc dans le forum Composants
    Réponses: 3
    Dernier message: 01/10/2002, 16h48
  3. arbre de parcour d'arborescence windows
    Par chupachoc dans le forum Composants
    Réponses: 7
    Dernier message: 09/09/2002, 08h09
  4. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo