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 03/01/2012, 13h27   #1
Invité de passage
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 1
Points : 1
Par défaut [Group by] avec Champs supplementaires

Bonjour,

Je n'arrive pas a faire une requete qui renvoie plus de 2 champs avec un group by

Detail de ce que j'essaye de faire:

J'ai une table personne avec les champs N°,nom,nb,divers

N°..NOM...NB..DIVERS
1....toto...2....8
2....titi.....3....9
3....tata...5....0
4....tutu...7....2
5....toto...1....0
6....titi.....4....1
7....tata...0....5
8....tutu...0....5

avec cette requete,

Code sql :
1
2
3
SELECT  nom, Max(nb) AS MaxNb
FROM personne
GROUP BY nom;
j'obtient:

NOM....MAXNB
tata....5
titi......4
toto....2
tutu....7

Et je voudrais que le champ [DIVERS] ce rapportant à la ligne soit inclus, c'est a dire:

NOM...MAXNB..DIVERS
tata...5..........0
titi.....4..........1
toto...2..........8
tutu...7..........2

Si vous avez une idée ?

Merci d'avance !
Blamp1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2012, 15h53   #2
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Bojour Blamp1,

Tu peux faire cela en 2 passages (le + simple) ou dans une requête avec un SELECT imbriqué.
Je te propose la 1ère méthode, qui offre l’intérêt de permettre l'utilisation du mode création alors que l'autre ne permettra que l'utilisation du mode SQL)

Crée d'abord une première requête (que j'ai nommé requête1)
avec ;

Code :
1
2
3
SELECT personne.NOM, Max(personne.NB) AS MaxDeNB
FROM personne
GROUP BY personne.NOM;
puis une seconde requête faisant la jointure avec ta table :

Code :
1
2
3
SELECT personne.NOM, personne.NB, personne.DIVERS
FROM personne INNER JOIN Requête1 ON (personne.NB = Requête1.MaxDeNB) AND (personne.NOM = Requête1.NOM)
ORDER BY personne.NOM;
Attention ! Si tu as plusieurs enregistrement ayant le même nombre maxi pour la même personne, l'enregistrement sera répété.

Ainsi l'exécution de la requête pour la table :

N° NOM NB DIVERS
1 toto 2 8
2 titi 3 9
3 tata 5 0
4 tutu 7 2
5 toto 1 0
6 titi 4 1
7 tata 0 5
8 tutu 0 5
9 tata 5 7

te donnera :

NOM NB DIVERS
tata 5 7
tata 5 0
titi 4 1
toto 2 8
tutu 7 2
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 03/01/2012, 23h45   #3
Invité de passage
 
Homme
Technicien réseau
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : High Tech - Matériel informatique

Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 1
Points : 1
Ca marche impeccable !
C'etait pas compliqué mais fallait le voir une fois pour comprendre.

Et je n'ai pas de probleme de doublons car le champ en question est une date qui est unique dans ma veritable table, vu que j'avais simplifié le probleme

Merci pour ton aide mister Dumas
Blamp1 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 06h13.


 
 
 
 
Partenaires

Hébergement Web