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 :

Problème avec : COUNT,GROUP BY,ORDER BY


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Par défaut Problème avec : COUNT,GROUP BY,ORDER BY
    Bonjour tout l'monde, donc voilà ma requête de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select LIBELLECAUSE, count(*) as TOTAL 
    from CAUSECH22010, CAUSECH2 
    where CAUSECH22010.CAUSE = CAUSECH2.CAUSECH2 
    and DATEHEURE between '01-01-2010' and '31-01-2010' 
    group by LIBELLECAUSE
    Cette requête fonctionne, mais maintenant je souhaiterai rajouter un ORDER BY sur le TOTAL, or ceci ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select LIBELLECAUSE, count(*) as TOTAL 
    from CAUSECH22010, CAUSECH2 
    where CAUSECH22010.CAUSE = CAUSECH2.CAUSECH2 
    and DATEHEURE between '01-01-2010' and '31-01-2010' 
    group by LIBELLECAUSE
    order by TOTAL
    J'ai le message " TOTAL column unknow" je ne vois pas comment faire pour trier cette requête.
    Je précise aussi je suis sur interbase 6 (je suis en stage en ce moment).

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Selon le SGBD, l'utilisation de l'alias dans le ORDER BY est accepté ou non.

    Apparemment, sur le tien il faut faire ORDER BY COUNT(*).

    Au passage, utilise la syntaxe normalisée depuis 1992 pour les jointures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT LIBELLECAUSE, COUNT(*) AS TOTAL 
    FROM CAUSECH22010
    INNER JOIN CAUSECH2 ON CAUSECH22010.CAUSE = CAUSECH2.CAUSECH2 
    WHERE DATEHEURE BETWEEN '01-01-2010' AND '31-01-2010' 
    GROUP BY LIBELLECAUSE
    ORDER BY COUNT(*)
    Et la colonne DATEHEURE devrait être de type DATETIME et donc le WHERE devrait plutôt s'écrire de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE DATEHEURE BETWEEN '2010-01-01' AND '2010-01-31'
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Par défaut
    J'ai exécuter ta reqête mais j'obtient le message suivant :

    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 6, char 8
    COUNT

    le count(*) dans le order by n'est pas possible ici.


    PS: oui pour la colonne DATEHEURE c'est bien un datetime je l'ai modifier pour y voir plus claire dans ma demande.

  4. #4
    Membre éclairé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Par défaut
    si tu fais
    (2ème colonne)
    ça donne quoi ?

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Par défaut
    ...et bien ça MARCHE !!
    Merci beaucoup 2 jours pour mettre un '2 ' au niveau de l'order by...

    Bien merci à vous 2 de votre aide aussi rapide!

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

Discussions similaires

  1. problème avec button group
    Par afrikha dans le forum NetBeans
    Réponses: 2
    Dernier message: 15/02/2007, 20h52
  2. Problème avec le GROUP BY
    Par Golork dans le forum Langage SQL
    Réponses: 8
    Dernier message: 02/06/2006, 19h25
  3. Problème avec COUNT
    Par LhIaScZkTer dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/01/2006, 03h16
  4. Access/SQL : Problème avec Count
    Par Taurëndil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/01/2005, 16h49
  5. problème avec un GROUP BY
    Par Vermin dans le forum Requêtes
    Réponses: 4
    Dernier message: 30/03/2004, 15h44

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