Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/01/2008, 21h47   #1
Invité de passage
 
Inscription : avril 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 23
Points : 4
Points : 4
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
rando est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 21h55   #2
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
une personne peut apparaître dans plusieurs colonne de la vue?
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 22h05   #3
Invité de passage
 
Inscription : avril 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 23
Points : 4
Points : 4
yes
rando est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 22h08   #4
Membre du Club
 
Inscription : janvier 2008
Messages : 50
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 50
Points : 47
Points : 47
Est-ce que cela veut donc dire que tu définis un niveau hiérarchique supérieur à 3 personnes ?
wondersonic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 22h40   #5
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Peut-être il y a mieux ...
Code :
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
__________________
Consultant et formateur Oracle
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2008, 12h44   #6
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par Michel SALAIS Voir le message
Peut-être il y a mieux ...
Code :
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
__________________
Consultant et formateur Oracle
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h55.


 
 
 
 
Partenaires

Hébergement Web