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

Oracle Discussion :

ORA-00979: not a GROUP BY expression


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 139
    Points : 109
    Points
    109
    Par défaut ORA-00979: not a GROUP BY expression
    salut

    j'ai 2 sous-requêtes imbriquées comme ça
    chaque sous-requête s'exécute toute seule
    mais les 2 ensembles donnent ORA-0097
    si j'enlève la ligne having des 2 sous requêtes ça marche

    l'explication officielle de cette erreur, comme quoi un champ dans le select n'est pas inclu dans le groupe by ne s'applique pas

    il doit donc y avoir d'autres causes

    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
    select *
    from    (
                   select trunc(vts.gather_date,'MM') as month, 
                          avg(vts.size_tbs) as size_tbs 
                     from table1 vts
                    where vts.oracle_sid = 'xxxxxxx'
                   group by trunc(vts.gather_date,'MM')
                   having trunc(vts.gather_date,'MM')=trunc(sysdate,'MM')
            ) voa,      
            (
                  select trunc(vts.gather_date,'MM') as month, 
                         avg (vts.size_tbs) as size_tbs 
                    from table12 vts
                   where vts.oracle_sid = 'xxxxxxx'
                   group by trunc(vts.gather_date,'MM')
                   having trunc(vts.gather_date,'MM')=trunc(trunc(sysdate,'MM')-(3*30),'MM')
            ) vod

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Table1 et Table12 sont des tables ou des vues? Quelle est votre version d'Oracle ?
    Que est-ce que ça donne la même requête avec le hint SQL NO_QUERY_TRANSFORMATION ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT /*+ NO_QUERY_TRANSFORMATION */ *
    ...

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 139
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Que est-ce que ça donne la même requête avec le hint SQL
    [/code]

    le hint résout le problème
    t'es un as
    je croyais avoir tout vu du sql

    P:S. la requête marchait avant .. elle a déconné avec 11.2.0.3

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Un bug de plus sur transformation des requêtes en Oracle 11g. Essayez de trouver le bug sur metalink ainsi que la solution recommandée par Oracle.

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 139
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Un bug de plus sur transformation des requêtes en Oracle 11g. Essayez de trouver le bug sur metalink ainsi que la solution recommandée par Oracle.
    Je crois que ça merde à cause du paramètre star_transformation_enabled
    car il y a des vues matérialisées dans la base

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 139
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Essayez de trouver le bug sur metalink ainsi que la solution recommandée par Oracle.
    le pb plus proche pour lequel pas encore de fix

    Bug 11067251 False ORA-979 with TRUNC(date, format) or ROUND(date, format) - superceded

    Description

    when expression like trunc(date, format) or round(date, format) appears in
    group by list, the group by is in an inline view query block, an ORA-00979
    may be raised if the format is different even when it means the same.

    Ex.

    SQL> select *
    from ( select TRUNC(HIREDATE,'MM')
    from EMP
    group by TRUNC(HIREDATE,'mm')); 2 3 4
    from ( select TRUNC(HIREDATE,'MM')
    *
    ERROR at line 2:
    ORA-00979: not a GROUP BY expression

    Workaround
    - no_merge hint
    - _simple_view_merging=false

  7. #7
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Oratorio Voir le message
    le pb plus proche pour lequel pas encore de fix
    Essayez les hints proposés, le hint NO_QUERY_TRANSFORMATION étant assez brutal.

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

Discussions similaires

  1. ORA-00979:not a GROUP BY expression
    Par kodo dans le forum SQL
    Réponses: 2
    Dernier message: 16/12/2010, 18h11
  2. ORA-00979: N'est pas une expression GROUP BY
    Par chakibtag dans le forum SQL
    Réponses: 2
    Dernier message: 09/07/2008, 10h22
  3. ORA-00979: N'est pas une expression GROUP BY
    Par NiGHtyWolf dans le forum Oracle
    Réponses: 3
    Dernier message: 10/05/2007, 19h11
  4. ORA-00979: not a GROUP BY expression
    Par Wurlitzer dans le forum Oracle
    Réponses: 13
    Dernier message: 01/02/2007, 12h19
  5. Erreur ORA-00979 : not a GROUP BY expression sur Oracle9i
    Par Dirty Henry dans le forum Oracle
    Réponses: 9
    Dernier message: 21/10/2005, 14h23

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