Incohérence dans le calcul d'une somme
Bonjour,
Je n'ai plus vraiment de souci car j'ai trouvé une solution mais je ne comprends pas bien l'origine exacte du problème.
En 11g : Tout va bien, pas de souci.
Problème, ma prod est en 10g et là souci.
J'ai une table de 184000 enregistrements à peu près.
Dans cette table, je travaille uniquement sur 3 champs
Annee : number not null (11 années différentes)
Entite : number not null (17000 entites)
montant : number not null
index sur annee,entite
j'effectue
Code:
1 2 3 4 5
| Create table fm_vers as
select annee,entite,
sum(montant)
from vers_mnt
group by entite,annee ; |
Lorsque je regarde le résultat, ma somme est incorrecte pour certaines entités et années. 6 cas sur des milliers de lignes.
Pour obtenir un peu moins d'erreurs, il me suffit d'inverser l'ordre du group by. Je me retrouve avec encore 4 erreurs.
Au final, ma requête rendant les résultats complètement correct a besoin d'un order by sur entite à la fin.
Code:
1 2 3 4 5 6
| Create table fm_vers as
select annee,entite,
sum(montant)
from vers_mnt
group by annee,entite
order by entite; |
Je ne vois pas ce qui pose le problème en 10g, cela reste une somme assez simple.
Si l'on part de la requête d'origine, où des erreurs existent, il suffit d'ajouter un where sur l'entité problèmatique pour ne pas voir d'erreurs. Je pourrai utiliser un curseur mais la requête reste basique donc je préfèrerai m'en passer.
Si vous avez des explications, je suis preneur.
Merci