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

SQL Oracle Discussion :

Requête d'agrégation à plusieurs niveaux


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 23
    Par défaut Requête d'agrégation à plusieurs niveaux
    Bonjour,

    j'ai une vue de ce type, qui définie un hiérarchie de 3 personnes avec une valeur:

    NomResponsable1, NomResponsable2, NomResponsable3, valeur

    (le resp1 est le chef du resp2 qui est le chef du resp3)

    et je voudrais recuperer un tableau du type:
    responsable1 10
    responsable2 3
    responsable3 2
    responsable4 1
    responsable5 7
    responsable6 7

    si dans ma vue j'ai
    resp1 resp2 resp3 2
    resp1 resp2 resp4 1
    resp1 resp5 resp6 7

    Une idée pour faire ce genre d'agrégation dans une requête ? Je vois pas comment descendre à 3 niveaux d'agrégations...

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    une personne peut apparaître dans plusieurs colonne de la vue?

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 23
    Par défaut
    yes

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 50
    Par défaut
    Est-ce que cela veut donc dire que tu définis un niveau hiérarchique supérieur à 3 personnes ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Peut-être il y a mieux ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    with t1 as
    (
      select NomResponsable1 Nom, sum(valeur) somme
      from v
      group by NomResponsable1
    ),
    t2 as
    (
      select NomResponsable2 Nom, sum(valeur) somme
      from v
      group by NomResponsable2
    ),
    t3 as
    (
      select NomResponsable3 Nom, sum(valeur) somme
      from v
      group by NomResponsable3
    ),
    t as
    (
      select *
      from t1
      union all
      select *
      from t2
      union all
      select *
      from t3
    )
    select nom, sum(somme) somme
    from t
    group by nom

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Par défaut
    Citation Envoyé par Michel SALAIS Voir le message
    Peut-être il y a mieux ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    with t1 as
    (
      select NomResponsable1 Nom, sum(valeur) somme
      from v
      group by NomResponsable1
    ),
    t2 as
    (
      select NomResponsable2 Nom, sum(valeur) somme
      from v
      group by NomResponsable2
    ),
    t3 as
    (
      select NomResponsable3 Nom, sum(valeur) somme
      from v
      group by NomResponsable3
    ),
    t as
    (
      select *
      from t1
      union all
      select *
      from t2
      union all
      select *
      from t3
    )
    select nom, sum(somme) somme
    from t
    group by nom
    J'ajoute que faire la requête directement à partir des tables de base sous-jacentes à la vue sera certainement mieux dans ce cas

Discussions similaires

  1. Création de plusieurs niveaux de sous formulaires
    Par Farbin dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2005, 21h15
  2. Problème requête qui renvoie plusieurs
    Par dai.kaioh dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/04/2004, 11h07
  3. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 20h05
  4. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 18h50
  5. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 17h26

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