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 27/04/2011, 15h33   #1
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 145
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 145
Points : 25
Points : 25
Par défaut selection/classement de plusieurs maximums

Bonjour

Je souhaite selectionner dans une table les 3 produits les plus cher , mais attention si par exemple j'ai article 1 prix A , article 2 prix B, article 3 et 4 avec le même prix C , je veux voir apparaitre article 1 , 2 , 3 et 4

j'ai déjà fait ceci mais sans vraiment être satisfait :

Code :
1
2
3
SELECT TOP 3 nommed, codemedi 
FROM MEDICAMENT
ORDER BY prixmed DESC ;
Ici je ne n'ai que 3 resultats ( ce n'est pas faux mais ce n'est pas ce que je recherche excatement )

Code :
1
2
3
4
5
6
7
SELECT nommed, codemedi COUNT(*)
FROM MEDICAMENT
GROUP BY nommed,codemedi
HAVING COUNT (*) = (SELECT TOP 3 prixmed  
                               FROM (SELECT COUNT (*) AS nb 
                               FROM MEDICAMENT 
                               GROUP BY nommed,codemedi));
Pour cette seconde solutions j'ai une erreur d'agrégat sur nommed .

Merci d'avance si quelqu'un peux m'aider

Pour info ma table à 3 champs prixmed , nommed , codemedi
tanaka59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 15h50   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
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 410
Points : 4 439
Points : 4 439
bonjour,

alors comme cela m'étonnait j'ai fais un test:

Code pre :
1
2
3
4
5
6
N°	codemedoc	libmedoc	prixmedoc
1	   m1  	         medoc1  	  12
2	   m2  	         medoc2  	  15
3	   m3  	         medoc3  	  8
4	   m4  	         medoc4  	  10
5	   m5  	         medoc5  	  10

puis la requête:

Code sql :
1
2
3
SELECT TOP 3 codemedoc, libmedoc
FROM LaTable
ORDER BY prixmedoc DESC;

résultat:
Code pre :
1
2
3
4
5
codemedoc	libmedoc
  m2   	         medoc2
  m1   	         medoc1
  m5   	         medoc5
  m4   	         medoc4

Citation:
Envoyé par tanaka59
Ici je ne n'ai que 3 resultats
ben moi 4 lignes

Quel est le type de données pour prixmed ? Monétaire ?
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 15h59   #3
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 145
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 145
Points : 25
Points : 25
prixmed est au format nombre et non pas monétaire
tanaka59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 16h08   #4
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
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 410
Points : 4 439
Points : 4 439
tu as peut-être un problème d'arrondi sur les prix, essaie avec:

Code sql :
...ORDER BY Round(prixmedoc,2) DESC;
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 16h35   #5
Nouveau Membre du Club
 
Inscription : janvier 2011
Messages : 145
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 145
Points : 25
Points : 25
Merci , maintenant la requête marche avec l'arrondi
tanaka59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2011, 16h41   #6
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
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 410
Points : 4 439
Points : 4 439
maintenant il y a peut-être mieux à faire comme traitement...

regarde la contribution de ClaudeLELOUP:
Garder n chiffres significatifs d'un montant
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h17.


 
 
 
 
Partenaires

Hébergement Web