|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Bonjour,
Je souhaiterais réaliser dans la même requête : - une moyenne des trois montants les plus élevés - une moyenne des trois montants les plus bas - une moyenne de tous les montants Pouvez vous m'aider pour imbriquer les fonctions type "TOP", "AVG" ... Merci par avance. |
|
|
00
|
|
|
#2 | ||||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Utilisez pour ce faire les fonction de fenêtrage : http://sqlpro.developpez.com/article...clause-window/
Jeun d'essais : Code :
Code :
Code :
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||||
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Bonjour et merci pour cette réponse rapide.
La méthode fonctionne mais les résultats ne sont pas corrects. Pour reprendre votre exemple, en moyenne haute vous obtenez 289.5 hors la moyenne de (456), (789), (101112) donne 34119. Je vais essayer de regarder en détail. |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Je suis dyslexique... J'inverse beaucoup de choses, comme la droite, la gauche, les haute et les bas
Voici la chose rectifiée ! Code :
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Super, merci beaucoup.
Est-il possible de ramener la valeur "montant" dans cette requête en complément ? |
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Autant pour moi.
C'est bon j'ai trouvé ce qu'il me fallait. Merci pour tout. Bonne soirée |
|
|
00
|
|
|
#7 | ||
![]() ![]() |
Une astuce par rapport à la requête de SQLPro pour raccourcir un peu le tout :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Bonjour,
Merci. J'ai néanmoins oublié une contrainte supplémentaire, à savoir, je dois réaliser ces calculs par rapport à un champ qui correspond à la période. Autrement dit, connaitre les différentes moyennes de chaque période. Merci |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Rajoutez un groupage !
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#10 | ||
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Bonjour et merci.
Actuellement j'ai : Code :
- le champ période n'est plus au format AAAA/MM mais sous forme d'entier et les valeurs calculées en moyennes haute et basse ne sont pas bon. Merci |
||
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
ok pour les moyennes (mon jeu de test ne possède que deux montants dans le cas testé).
Par contre me reste à afficher ma période correctement. |
|
|
00
|
|
|
#12 | ||
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
J'ai trouvé une solution me permettant de ramener toutes les valeurs nécessaires mais j'ai un problème avec le ORDER qui se trouve avant UNION :
Code :
=> UNION : syntaxe incorrecte Merci pour votre aide. |
||
|
|
00
|
|
|
#13 |
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Etant donné que je ne peux pas utiliser le ORDER BY, il faut certainement que j'intègre un RANK ...
|
|
|
00
|
|
|
#14 |
![]() ![]() |
L'order by est exécuté en fin de requête (ou par la présence d'un TOP), or un union constitue bien une et une seule requête.
Il faut donc supprimer celui du milieu, ou rajouter des parenthèses pour mieux séparer les requêtes.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#15 | ||
|
Membre à l'essai
![]() Inscription : mai 2008 Messages : 133 ![]() |
Bonjour,
Je vous remercie. J'ai finalement réussi à terminer cette requête. Pour info et si quelqu'un en a besoin, voici ce que ça donne : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com