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

PL/SQL Oracle Discussion :

Problème de group by


Sujet :

PL/SQL Oracle

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut Problème de group by
    Bonjour,

    J'ai la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select
    to_char(date_mesure, 'YYYY') as annee,
    to_char(date_mesure, 'MM') mois,
    sum(conso) conso
    from
    conso_mesure
    group by annee, mois;
    Ca ne fonctionne pas car je ne peux pas utiliser annee et mois dans le group by. Mais ça ne fonctionne pas non plus avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    group by to_char(date_mesure, 'YYYY'), to_char(date_mesure, 'MM');
    Comment agréger mes données par mois dans la requête ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut
    bonjour,
    pour moi en 10g
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY to_char(date_mesure, 'YYYY'), to_char(date_mesure, 'MM');
    fonctionne
    vous etes en quel version ?
    quel est le message d'erreur ?

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Citation Envoyé par c.langlet Voir le message
    bonjour,
    pour moi en 10g
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY to_char(date_mesure, 'YYYY'), to_char(date_mesure, 'MM');
    fonctionne
    vous etes en quel version ?
    quel est le message d'erreur ?
    Version 10.2.0.3.0.
    Le message d'erreur est :
    Not a GROUP BY expression.
    Un simple GROUP BY date_mesure fonctionne sans problème.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Neuromancien2 Voir le message
    Mais ça ne fonctionne pas non plus avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    group by to_char(date_mesure, 'YYYY'), to_char(date_mesure, 'MM');
    Comment ça, ça ne "fonctionne" pas ?
    As-tu un message d'erreur ?
    Tes données sont correctes et vérifiées ?
    C'est quoi ta version ?
    ???

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Neuromancien2 Voir le message
    Version 10.2.0.3.0.
    Le message d'erreur est .
    Donne nous la requête que tu testes vraiment...

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT 
    to_char(m.date_mesure, 'YYYY') as annee,
    to_char(m.date_mesure, 'MM') mois,
    sum(c.conso)
    FROM
    mesure m,
    conso c
    WHERE 
    m.mes_id = c.mes_id (+)
    and m.reference_cli = lpad(to_char(77951), 6, '0')
    group by to_char(m.date_mesure, 'YYYY'), to_char(m.date_mesure, 'MM')
    order by annee, mois;

  7. #7
    Invité
    Invité(e)
    Par défaut
    Visiblement ce n'est pas vraiment la requête que tu utilises, le WHERE AND est problématique...

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    J'ai corrigé sur mon post. Mais ça ne m'explique pas d'où vient le problème.

  9. #9
    Membre chevronné Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Par défaut
    Bonjour,

    Tu pourrais essayer sans la clause ORDER BY pour voir si ce n'est pas elle qui pose problème ?

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Citation Envoyé par xdescamp Voir le message
    Bonjour,

    Tu pourrais essayer sans la clause ORDER BY pour voir si ce n'est pas elle qui pose problème ?
    Je ne comprends pas ta réponse... C'est la clause GROUP BY qui pose problème.
    Edit : GROUP BY (et non ORDER BY)

  11. #11
    Membre chevronné Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Par défaut
    Au vu de tes précédents posts (le 1er surtout), j'avais compris que c'était le GROUP BY qui posait problème.
    Si c'est l'ORDER BY, tu peux essayer

  12. #12
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Désolé, je voulais dire le GROUP BY.

  13. #13
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Je pense que vous ne faites pas un copier coller mais une recopie modifiée car la requête que vous avez postée fonctionne parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    with mesure as
    (
    select 1 as mes_id, '077951' as reference_cli, sysdate as date_mesure from dual union all
    select 1          , '077951'                 , add_months(sysdate, 2) from dual
    ),
        conso as
    (
    select 1 as mes_id, 234 as conso from dual
    )
    SELECT 
    to_char(m.date_mesure, 'YYYY') AS annee,
    to_char(m.date_mesure, 'MM') mois,
    sum(c.conso)
    FROM
    mesure m,
    conso c
    WHERE 
    m.mes_id = c.mes_id (+)
    AND m.reference_cli = lpad(to_char(77951), 6, '0')
    GROUP BY to_char(m.date_mesure, 'YYYY'), to_char(m.date_mesure, 'MM')
    ORDER BY annee, mois;
     
    ANNEE	MOIS	SUM(C.CONSO)
    2009	10	234
    2009	12	234
    Testée en 11g et 9i.

  14. #14
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Je pense que vous ne faites pas un copier coller mais une recopie modifiée car la requête que vous avez postée fonctionne parfaitement :
    Non, ça ne fonctionne pas. Le remplacement de :
    date_mesure par to_char(date_mesure, 'yyyy') dans la clause ORDER BY donne l'erreur indiquée.

    Par contre la requête suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
    to_char(m.date_mesure, 'YYYY') || to_char(m.date_mesure, 'MM') mois,
    sum(c.conso)
    FROM
    mesure m,
    conso c
    WHERE 
    m.mes_id = c.mes_id (+)
    AND m.reference_cli = lpad(to_char(77951), 6, '0')
    GROUP BY to_char(m.date_mesure, 'YYYY') || to_char(m.date_mesure, 'MM')
    ORDER BY annee, mois;

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut
    bonjour,
    si cette requête fonctionne il faudra me dire comment
    il trouve annee dans le order by
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
    to_char(m.date_mesure, 'YYYY') || to_char(m.date_mesure, 'MM') mois,
    sum(c.conso)
    FROM
    mesure m,
    conso c
    WHERE 
    m.mes_id = c.mes_id (+)
    AND m.reference_cli = lpad(to_char(77951), 6, '0')
    GROUP BY to_char(m.date_mesure, 'YYYY') || to_char(m.date_mesure, 'MM')
    ORDER BY annee, mois;

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

Discussions similaires

  1. [XI] problème avec groupe sur un champ trié par origine ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 11/04/2007, 15h31
  2. Problème avec GROUP BY
    Par Korskarn dans le forum Langage SQL
    Réponses: 6
    Dernier message: 07/03/2006, 14h35
  3. Problème avec group by...
    Par gdido dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/07/2005, 09h34
  4. [débutant] problème avec Group by
    Par Amenofis dans le forum Débuter
    Réponses: 5
    Dernier message: 25/05/2005, 09h57
  5. Réponses: 9
    Dernier message: 17/01/2004, 10h51

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