IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Select Top N dans une requete


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut Select Top N dans une requete
    Bonjour
    j'utilise une requête avec ce critère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    In (SELECT TOP 4 ["champ1"] FROM ["ma table"] As P WHERE P.[champ2]=[table].[champ2])));
    qui consiste à extraire les 4 meilleurs enregistrements de champ1 de la table "ma table"
    J'ai vu que access extrait plus de 4 (dans mon cas de figure) enregistrements dès lors que les 5e (voire les suivants) ont la même valeur que le 4e, si champ1 est numérique.
    Or je veux vraiment n'en garder que 4!

    Je suis sous access 2007.

    Comment faire?
    merci

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 264
    Par défaut limitation nbre element
    essayes SELECT FIRST 4 ...
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    bonjour,

    pour extraire les 4 "meilleurs", il faut au moins préciser comment les données sont classées avec un ORDER BY [champ1].

    S'il faut départager les ex-aequo il faut rajouter un deuxième critère de tri :
    ORDER BY [champ1], [AutreChamp].

  4. #4
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Citation Envoyé par f-leb Voir le message
    bonjour,

    pour extraire les 4 "meilleurs", il faut au moins préciser comment les données sont classées avec un ORDER BY [champ1].

    S'il faut départager les ex-aequo il faut rajouter un deuxième critère de tri :
    ORDER BY [champ1], [AutreChamp].
    Bonjour et merci;
    Je n'ai pas besoin de départager les ex exequo, ce n'est pas le but.

    J'ai bien ajouté "ORDER BY [champ1] DESC. Mais toujours la même chose! il me retourne 5 enregistrement au lieu de 4 car les 4e et 5e ont la même valeur numérique.

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Bonjour,

    Citation Envoyé par marcGR Voir le message
    ... il me retourne 5 enregistrement au lieu de 4 car les 4e et 5e ont la même valeur numérique.
    Citation Envoyé par marcGR Voir le message
    Je n'ai pas besoin de départager les ex exequo, ce n'est pas le but.
    euh... Quelle est ta définition de ex aequo ? ("Avec le même rang dans un classement")


    J'avais cru comprendre que "les 4e et 5e qui ont la même valeur numérique" sont justement ex aequo et qu'il fallait n'en retenir qu'un sur les deux.

    Une subtilité m'échappe

  6. #6
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Citation Envoyé par f-leb Voir le message
    Bonjour,





    euh... Quelle est ta définition de ex aequo ? ("Avec le même rang dans un classement")


    J'avais cru comprendre que "les 4e et 5e qui ont la même valeur numérique" sont justement ex aequo et qu'il fallait n'en retenir qu'un sur les deux.

    Une subtilité m'échappe

    je précise: il ne s'agit pas des 4e et 5e qui ont le même score, mais d'une même et seule personne qui a 5 scores sont 3 au même niveau sur les 5. Et je souhaite n'en retenir que les 4 meilleurs, sachant que les 3e, 4e et le 5e sont au même niveau. Je joints en extrait de la table avec l'exemple en question, on y voit colonne "Points acquis": 188, 177, 167, 167, 167.
    avec le critère TOP 4, la requête me retourne les 5 enregistrements, alors que je ne voudrais que ceux avec 188, 177, 167, 167, avec n'importe lequel à 167
    Fichiers attachés Fichiers attachés

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    bonsoir,

    Citation Envoyé par f-leb Voir le message
    S'il faut départager les ex-aequo il faut rajouter un deuxième critère de tri :
    ORDER BY [champ1], [AutreChamp].
    as-tu essayé avec ORDER BY [Points acquis] DESC, [EPREUVE] dans le SELECT TOP ?

  8. #8
    Membre averti
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    essayes SELECT FIRST 4 ...

    Bonjour
    si je mets FIRST à la place de TOP, j'obtiens une erreur de syntaxe

Discussions similaires

  1. [AC-2003] Top 2 dans une requete
    Par nounous54 dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 14/02/2014, 21h21
  2. Dedoublonage d'un affichage dans une requete de selection
    Par malingue dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/02/2007, 14h55
  3. executer une procedure stockées dans une requete SELECT
    Par bleuerouge dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/08/2006, 17h23
  4. Afficher le numéro de ligne dans une requete SELECT
    Par tilb dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/09/2004, 10h20
  5. Eviter plusieurs OR dans une requete SELECT
    Par zoubidaman dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/06/2004, 05h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo