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 :

[SQL] Limitation aux n premiers termes


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut [SQL] Limitation aux n premiers termes
    Bonsoir,

    J'ai passé mon après-midi à lutter sur un problème:

    Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Count(MATABLE.MONCHAMP) AS COMPTECHAMP, MATABLE.MONCHAMP
    FROM MATABLE
    GROUP BY MATABLE.MONCHAMP
    HAVING ((Count(MATABLE.MONCHAMP))>0)
    ORDER BY Count(MATABLE.MONCHAMP) DESC;
    Cette requête marche à merveille, seulement j'aimerais qu'elle ne me renvoit que les n (n=10 en fait ^^) premières valeurs seulement, j'ai essayé plusieurs trucs, même dérangé un collègue et rien, je m'en réfère donc à vous.

    Merci d'avance

    Tom

    PS: J'ai parcouru un peu le forum et quelques Tutos et livres, et rien trouvé de concluant :/

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Pour limiter le nombre d'enregistrements retournés par une requête, le SQL d'Access accepte le prédicat TOP.

    Dans ton cas, ça pourrait donner ce qui suit (à tester...) :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT TOP 10 Count(MATABLE.MONCHAMP) AS COMPTECHAMP, MATABLE.MONCHAMP
    FROM MATABLE
    GROUP BY MATABLE.MONCHAMP
    HAVING ((Count(MATABLE.MONCHAMP))>0)
    ORDER BY Count(MATABLE.MONCHAMP) DESC;

    Euhhh... en passant... Tu crois que la clause HAVING sert vraiment à quelque chose dans cette requête ?
    Puisque le regroupement s'applique aux valeurs de NOMCHAMP, alors on a toujours COMPTECHAMP>=1.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Merci beaucoup de ton aide et de ta rapidité de réponse

    En effet dans cette configuration le HAVING ne sert à rien, mais c'est que j'effectue des tests avec d'autres chiffres que 0 ^^

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Smarty] Limité foreach aux 5 premiers resultats ?
    Par gandolfi dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 28/03/2007, 19h34
  2. [xslt] Limiter un for-each aux x premiers éléments
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 18/11/2005, 17h09
  3. SQL limit
    Par anzize dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/07/2005, 20h18
  4. Extraire les n premiers termes d'une chaine
    Par knecmotet dans le forum C++
    Réponses: 4
    Dernier message: 03/03/2005, 16h05
  5. fonction sql "LIMIT" en interbase?
    Par GMI dans le forum InterBase
    Réponses: 6
    Dernier message: 20/09/2004, 15h04

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