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

Langage SQL Discussion :

HAVING et/ou GROUP BY ?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 88
    Par défaut HAVING et/ou GROUP BY ?
    Bonjour,

    je suis perdu ds ma requête ! Ma table est la suivante :

    REF | Date | Code
    REF1 | 27/06/07 | A
    REF2 | 26/06/07 | A
    REF4 | 23/06/07 | C
    REF1 | 22/06/07 | B
    REF1 | 22/06/07 | A
    REF9 | 22/06/07 | A
    REF8 | 22/06/07 | C
    REF6 | 22/06/07 | B
    REF4 | 19/06/07 | A

    je veux les réf distinct & triées par date (desc) pour un code défini :

    REF | date
    REF1 | 27/06/07
    REF2 | 26/06/07
    REF9 | 22/06/07
    REF4 | 19/06/07

    Avant de tester en réel sur ma base (énorme ), pourriez vous me valider ma requête (théorique )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT REF, DATE, CODE 
    From MaTable 
    Having Code="A" 
    Order By Desc Date, REF
    Je suis perdu ds la règle de mon prédictat ou du moins je n'arrive pas à projeter le résultat de ma requête : je risque d'avoir les ref qui confirme Code = A et triées par date desc (OK !) mais vais je avoir des doublons dans mes réfs ? si j'ajoute ? je suis perdu.
    Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Par défaut
    Tu ne dois pas te servir de la clause HAVING pour faire ta sélection. HAVING ne sert que pour faire une sélection sur une valeur issue d'une fnct agrégat (avg, min, max).

    Tu mets plutôt where code="A".

    Et rajoute je pense un distinct (Ref, Date, Code)

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Citation Envoyé par MITCH31
    Avant de tester en réel sur ma base (énorme ), pourriez vous me valider ma requête (théorique )
    Tu peux aussi limiter le nombre de lignes renvoyées par la requête aux n premières lignes, mais la synthaxe dépend du SGBDR.
    C'est pratique pour tester si une requête se comporte comme prévu

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 88
    Par défaut
    Rép à ruru9 :
    Non la clause Distinct ne me permet pas d'afficher une ligne pour la ref1 à la date du 27/06/07

    Rép à Ced : c'est hyper pratique de tester une requête qui se comporte comme prévu

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Par défaut
    Si tu veux une seule ligne, celle du 27/06 pour la ref 1; tu veux donc l'enregistrement le plus récent pour chaque valeur de Ref et cela pour un groupe donné (d'apres ton champs code).

    Est je bien compris??

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 88
    Par défaut
    tout à fait ruru9

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Félicitations à ruru9 qui a compris la question qui n'était pas posée
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. GROUP BY et HAVING MAX
    Par dragoon83 dans le forum Requêtes
    Réponses: 6
    Dernier message: 11/06/2014, 11h55
  2. regroupement GROUP BY.HAVING et critères
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 17/10/2007, 12h11
  3. COUNT, GROUP BY et HAVING
    Par yobogs dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/10/2007, 13h34
  4. comment traduire un "group by/having" dans une query
    Par cau83 dans le forum Alimentation
    Réponses: 1
    Dernier message: 05/06/2007, 09h05
  5. GROUP BY et HAVING dans un UPDATE
    Par MashiMaro dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/08/2003, 08h03

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