[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:
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
Code:
order by clChampClef
à la fin de la requête, on obtient un résultat différent 8O, 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.