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 naar een gemeenschappelijk type gedwongen en afgerond. Vooral negatieve waarden kunnen leiden tot verlies van precisie -- en bij elke run andere queryresultaten opleveren.
Om dit te voorkomen, raden wij u aan uw bestelling zo aan te passen dat de gietfunctie vóór de berekening wordt uitgevoerd.
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"