|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 10 ![]() |
Bonjour à tous,
Voilà mon problème : pour chaque valeur de A différente, je souhaite récupérer la valeur de B pour laquelle C=MAX(C), ex : A=1,B=1,C=10 A=1,B=2,C=1 A=1,B=3,C=8 A=3,B=1,C=5 A=3,B=2,C=3 A=3,B=3,C=35 A=4,B=1,C=5 A=4,B=2,C=58 A=4,B=3,C=8 La requête doit retourner 3 valeurs : B=1 car 10=MAX(10,1,8) B=3 car 35=MAX(5,3,35) B=2 car 58=MAX(5,58,8) Je n'arrive pas à m'en sortir avec une seule requête, faut-il faire plusieurs requêtes ? Merci pour votre aide. |
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() Inscription : septembre 2006 Messages : 685 ![]() |
Peut-être avec un groupe et une jointure, mais pas sûr.
Ca donnerait Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Inscription : février 2006 Messages : 953 ![]() |
Plus exactement:
Code :
Les MAX et autres n'ont pas l'air de passer dans 'ON' et 'WHERE', donc c'est un 'HAVING'. Les champs utilisés pour la clause 'HAVING' doivent être listés (même s'ils ne nous intéressent pas vraiment). Ca marche mais c'est assez lent. Si la table est vraiment énorme ça peut être un problème. Un index sur A me semble vital. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com