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 16/02/2011, 18h27   #1
Invité de passage
 
Inscription : février 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Par défaut Sélection de valeurs maximales pour effectuer des sommes

Bonjour,

je suis confronté à un problème qui me paraissait à priori simple, mais dont je ne trouve pas la solution compte tenu de mon niveau de connaissance... bien modeste. Illustration :
Dans Table, j'ai 4 champs : [id] (entier incrémenté, clé primaire), [type] (texte à choisir à partir d'une liste), [valeur] (nombre décimal) et [version] (nombre entier).

Les données de la table complète se présentent à titre d'exemple ainsi :
id----type----version----valeur
1----chèvre----1----5
2----chèvre----2----10
3----vache----1----3
4----brebis----1----4
5----chèvre----3----15
6----brebis----2----8
7---- brebis----3----12
8----vache----2----6
9----vache----3----9

Je souhaite réaliser une requête afin de n'obtenir une table ne présentant que les lignes complètes (les 4 colonnes donc) des enregistrements différenciés (groupés ?) par type ET ayant le nombre [version] le plus élevé.

Mon problème : si j'utilise dans ma requête une opération de "regroupement" sur [type] et "max" sur la colonne [version], cela fonctionne tant que je n'affiche que ces deux colonnes [type] et [MaxDeversion] et me donne bien ceci :

type----MaxDeversion
brebis----3
chèvre----3
vache----3

Mais comme je souhaite retourner également les données des colonnes [id] et [valeur] pour ces lignes, le principe ne fonctionne plus car l'opération "regroupement" est alors effectuée sur ces deux colonnes et la requête retourne toutes les lignes du tableau (logique !).

Y-a-t-il une solution soit en appliquant une autre opération que "regroupement" aux colonnes [id] et [valeur], et dans l'affirmative, quelle opération, soit par un autre moyen dans l'expression de la requête ?

Mon tableau final devrait ressembler avec la bonne requête à cela :

id----type----version----valeur
5----chèvre----3----15
7---- brebis----3----12
9----vache----3----9

J'espère avoir été assez précis dans mon exposé et excusez-moi si la réponse est évidente ! J'ai cherché longuement sans succès...

Merci beaucoup pour votre attention et vos réponses.

Yves
yves210420 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 18h52   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Yves210420,

Tu as fait la moitié du chemin...

Appelons R1 la requête qui t'a donné le résultat suivant :
Code :
1
2
3
4
type    MaxDeversion
brebis  3
chèvre  4
vache   3
Créer une requête R2, via l'assistant :
- ajouter R1 et Table (FROM) ;
- lier R1 à Table via Type=>Type et MaxDeVersion=>Version (JOIN) ;
- sélectionner les champs que tu veux, dont Id et Valeur (SELECT).
==> tu devrais obtenir le résultat souhaité.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 19h56   #3
Invité de passage
 
Inscription : février 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Par défaut Yes...

Bien,
merci Richard, la méthode des 2 requêtes avec 2 relations fonctionne parfaitement.
Je comprends maintenant le principe, mais je pensais que la relation devrait impérativement se faire sur [ID] qui est unique, or je n'arrivais pas à le récupérer dans R1.
Je vais tester cette solution dans le contexte réel de mes données qui ne traitent pas de ruminants mais de dépenses comptables prévisionnelles (d'où les versions) !
Je clôturerai la discussion quand j'aurai mis en place le truc, sauf imprévu...
Merci encore.
Yves
yves210420 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 12h11   #4
Invité de passage
 
Inscription : février 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 4
Points : 1
Points : 1
Par défaut Résolu

Bonjour,
après quelques jours de travaux, l'ensemble des calculs sur les requêtes fonctionnent bien, en passant par une requête intermédiaire.
Je passe donc le sujet en résolu.
yves210420 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 14h00.


 
 
 
 
Partenaires

Hébergement Web