Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels 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 02/05/2007, 17h21   #1
Membre habitué
 
Avatar de PoichOU
 
Homme PoichOU
Étudiant
Inscription : juillet 2006
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme PoichOU
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juillet 2006
Messages : 296
Points : 114
Points : 114
Par défaut [SQL] Besoin d'aide pour une requête

Bonjour,

J'ai la table suivante :
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
-----------------------------------------------------
| id | Famille |   Type   | Sous_type | Qte | MOIS  |
-----------------------------------------------------
|  1 | Fruit   |   Orange | Mandarine |  2  |   1   |
|  2 | Fruit   |   Orange | Mandarine | 10  |   2   |
|  3 | Fruit   |   Orange | Mandarine |  8  |   3   |
|  4 | Fruit   |   Orange | Mandarine | 17  |   4   |
|  5 | Fruit   |   Orange | Mandarine | 28  |   5   |
|  6 | Fruit   |   Orange | Mandarine | 35  |   6   |
|  7 | Fruit   |   Orange | Mandarine | 40  |   7   |
|  8 | Fruit   |   Orange | Mandarine | 20  |   8   |
|  9 | Fruit   |   Orange | Mandarine |  8  |   9   |
| 10 | Fruit   |   Orange | Mandarine |  4  |  10   |
| 11 | Fruit   |   Orange | Mandarine |  1  |  11   |
| 12 | Fruit   |   Orange | Mandarine |  0  |  12   |
| 13 | Fruit   |   Orange | Sanguine  |  4  |   1   |
| 14 | Fruit   |   Orange | Sanguine  | 17  |   2   |
| 15 | Fruit   |   Orange | Sanguine  | 18  |   3   |
| 16 | Fruit   |   Orange | Sanguine  | 27  |   4   |
| 17 | Fruit   |   Orange | Sanguine  | 38  |   5   |
| 18 | Fruit   |   Orange | Sanguine  | 55  |   6   |
| 19 | Fruit   |   Orange | Sanguine  | 50  |   7   |
| 20 | Fruit   |   Orange | Sanguine  | 30  |   8   |
| 21 | Fruit   |   Orange | Sanguine  | 18  |   9   |
| 22 | Fruit   |   Orange | Sanguine  | 14  |  10   |
| 23 | Fruit   |   Orange | Sanguine  |  7  |  11   |
| 24 | Fruit   |   Orange | Sanguine  |  7  |  12   |
-----------------------------------------------------
Je voudrais faire une requête de calcul de quantité par année, pour obtenir le résultat suivant :
Code :
1
2
3
4
5
6
---------------------------------------------
| id | Famille |   Type   | Sous_type | Qte |
---------------------------------------------
|  1 | Fruit   |   Orange | Mandarine | 173 | 
|  2 | Fruit   |   Orange | Sanguine  | 285 | 
---------------------------------------------
Pouvez vous m'aidez ?


merci

PoichOU
PoichOU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 17h24   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Code :
1
2
3
4
5
 
SELECT Famille,Type,Sous_type,SUm(Qte)
FROM ...
GROUP BY Famille,Type,Sous_type
ORDER BY Famille,Type,Sous_type
S'il vous plait l'indication [débutant] ne sert à rien dans le titre et donc totalement superflue.
[SQL] serait plus approprié
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 17h46   #3
Membre habitué
 
Avatar de PoichOU
 
Homme PoichOU
Étudiant
Inscription : juillet 2006
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme PoichOU
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juillet 2006
Messages : 296
Points : 114
Points : 114
Merci beaucoup pour la réponse aussi rapide,

Je voudrais faire la même requête avec des fonctions analytiques, j'ai essayé la requête :

Code :
1
2
SELECT Famille,Type,Sous_type,(Sum(Qte) over(partition BY(Famille,Type,Sous_type)) AS Qte
FROM TABLE_QTE_MOIS
ça marche presque, le resultat est le bon mais j'ai plusieurs fois ce résultat.

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
----------------------------------------
| Famille |   Type   | Sous_type | Qte |
----------------------------------------
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Mandarine | 173 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
| Fruit   |   Orange | Sanguine  | 285 | 
----------------------------------------
Peux-tu m'aider ?

PoichOU
PoichOU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 18h08   #4
Membre émérite
 
Avatar de Yorglaa
 
Inscription : janvier 2004
Messages : 845
Détails du profil
Informations personnelles :
Âge : 41
Localisation : Suisse

Informations forums :
Inscription : janvier 2004
Messages : 845
Points : 939
Points : 939
et juste avec
__________________
Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

Yorglaa
Yorglaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 18h23   #5
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
D'un autre côté les fonctions analytiques ne sont pas adaptées ici, il vaut mieux utiliser les fonctions d'aggrégation.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 09h28   #6
Membre habitué
 
Avatar de PoichOU
 
Homme PoichOU
Étudiant
Inscription : juillet 2006
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme PoichOU
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juillet 2006
Messages : 296
Points : 114
Points : 114
Merci Yorglaa pour ta réponse.

plaineR, pourrais-tu me dire pourquoi les fonctions analytiques ne sont pas adaptées ici ? je pensais que c'était toujours mieux que les aggrégation, surtout au niveau des performances.


PoichOU
PoichOU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 09h34   #7
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par PoichOU
pourrais-tu me dire pourquoi les fonctions analytiques ne sont pas adaptées ici
Parce que tu cherches à faire un regroupement. Si tu ajoutes un "select distinct", cela revient à faire un group by (donc un regroupement).

Les fonctions analytiques sont mieux si tu avais voulu avoir comme résultat, par exemple, sur chaque ligne la somme des quantités par famille (en affichant malgré tout le type et le sous type).
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h26   #8
Membre habitué
 
Avatar de PoichOU
 
Homme PoichOU
Étudiant
Inscription : juillet 2006
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme PoichOU
Âge : 24
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juillet 2006
Messages : 296
Points : 114
Points : 114
ok merci de l'info

PoichOU
PoichOU est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h33.


 
 
 
 
Partenaires

Hébergement Web