Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 29/11/2010, 22h31   #1
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 31
Points : 27
Points : 27
Par défaut Requete combinant Max et Dmax ?

Bonjour,

Soit une liste de donnée du type :

CLIENT/DATE/VALEUR
titi/01-01-10/12
titi/02-01-10/55
titi/15-02-10/25
toto/05-01-10/10
toto/01-03-10/17

comment construire une requete qui genere le résultat suivant (à Quelle DATE chaque CLIENT à t-il sa VALEUR maximum) :

CLIENT/DATE/VALEUR
titi/02-01-10/55
toto/01-03-10/17

une fonction "max" avec un agrégat sur client ne permet pas d'associer la date et la fonction "Dmax" ne renvoie qu'un enregistrement...

Merci
gomi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 23h14   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 407
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 407
Points : 4 432
Points : 4 432
bonsoir,

en deux temps:
- une premier requête qui recherche la valeur maxi par client
Code sql :
1
2
3
SELECT Client, max(Valeur) AS ValeurMaxi 
FROM LaTable
GROUP BY Client

- une deuxième qui reprend la précédente et reliée à la table sur les champs (client, valeur).

le tout imbriqué, ça donnerait:
Code sql :
1
2
3
4
5
6
7
8
9
SELECT T.Client, T.LaDate, T.Valeur
FROM LaTable T
INNER JOIN
(
   SELECT Client, max(Valeur) AS ValeurMaxi 
   FROM LaTable
   GROUP BY Client
) R1
ON T.Client=R1.Client AND T.Valeur=R1.ValeurMaxi;
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 12h37   #3
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 31
Points : 27
Points : 27
Bonjour,

La solution proposée par f-leb a effectivement bien répondu à ma question.

Donc, Grand Merci à f-leb
gomi 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 01h42.


 
 
 
 
Partenaires

Hébergement Web