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

SQL Oracle Discussion :

[10g] Anomalie de la commande GROUP BY


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 37
    Par défaut [10g] Anomalie de la commande GROUP BY
    Bonjour,

    Ma base est actuellement en version 10.2.0.1.0.

    La requête suivante (j'espère ne pas me tromper sur la syntaxe de la commande en la retranscrivant) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select clChampClef, sum( decode( clType, 'C', clMontant, -1 * clMontant ) )
    from MaTable
    group by clChampClef
    having sum( decode( clType, 'C', clMontant, -1 * clMontant ) ) <> 0
    renvoie des enregistrements, alors qu'on attend aucun retour.

    En ajoutant la ligne
    à la fin de la requête, on obtient un résultat différent , qui correspond effectivement au résultat attendu.

    A noter que la volumétrie de la table est relativement très importante (plusieurs centaines de millions d'enregistrements, pour plusieurs millions d'enregistrements distincts par rapport au champ clef), et que le résultat renvoyé par la requête sans "ORDER BY" varie d'une exécution à l'autre.

    Est-ce que quelqu'un sait si cette anomalie est référencée, et si un patch est censé la corriger (j'ai prévu d'installer les patchs, mais pas dans l'immédiat) ?
    Où s'agit-il d'un problème de paramétrage ?

    J'ai essayé de jouer avec les paramètres NLS_LANG, NLS_SORT, mais ça donne un résultat similaire.

    Merci de votre aide.

  2. #2
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut C'est bien referencé
    Subject: 'Group By' Does Not Sort If You Don'T Use Order By In 10g
    Doc ID: NOTE:345048.1 Type: PROBLEM
    Last Revision Date: 31-AUG-2008 Status: MODERATED


    desolé mais pour des raisons juridiques je ne peux tout envoyer

    cf la note

  3. #3
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 37
    Par défaut
    De ce que j'ai pu comprendre de la note, cela concerne le tri des données d'une requête, qui n'est plus trié dans le même ordre dans le cas d'un "GROUP BY" sans un "ORDRE BY" explicite.

    Mon problème n'est pas sur l'ordre de présentation des données, mais les valeurs du résultat renvoyé.

    Par rapport à la requête que je précisais, j'obtiens par exemple ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    clChampClef | SUM
    ----------- | --------
    Clef0012    |   +25500
    Clef0001    |     -500
    Clef0018    |     +100
    Clef0003    |   -15500
    Clef0008    |     +300
    Alors qu'en ajoutant la clause "ORDER BY clChampClef ", je vais obtenir ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    clChampClef | SUM
    ----------- | --------
    Clef0018    |     +100

Discussions similaires

  1. [MCD]création commande groupée
    Par johnpincuk dans le forum Schéma
    Réponses: 3
    Dernier message: 20/03/2008, 23h37
  2. [Oracle 10g] Problème Union-sous requêtes-group by
    Par slobberbone dans le forum SQL
    Réponses: 2
    Dernier message: 17/09/2007, 18h16
  3. [forms 10g] Rendre Bouton De Commande Non Accessible
    Par lolafrite dans le forum Forms
    Réponses: 5
    Dernier message: 21/03/2007, 17h20

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