Dit is een eigenaardigheid van de SQL-engine die onze query's aanstuurt. Wanneer een berekening (zoals SUM) wordt uitgevoerd op meerdere decimale types met verschillende waarden, worden de waarden gedwongen naar een gemeenschappelijk type en afgerond. Vooral negatieve waarden kunnen leiden tot een verlies aan precisie -- en bij elke run andere queryresultaten opleveren.
Om dit te voorkomen, raden we aan om je bestelling zo aan te passen dat de gietfunctie wordt uitgevoerd vóór de berekening.
Deze clausule kan bijvoorbeeld inconsistente resultaten opleveren:
SELECTEER
CAST(SUM("XY"."X") ALS DECIMAAL(1,1)) ALS "X".
Maar deze clausule zal elke keer hetzelfde resultaat opleveren:
SELECTEER
SOM(CAST(("XY"."X") ALS DECIMAAL(1,1)) AS "X"