Se trata de una peculiaridad del motor SQL que ejecuta nuestras consultas. Cuando un cálculo (como la SUMA) se realiza sobre varios tipos decimales con valores diferentes, los valores se coaccionan a un tipo común y se redondean. Los valores negativos, en particular, pueden provocar una pérdida de precisión y producir resultados de consulta diferentes en cada ejecución.
Para evitarlo, le recomendamos que ajuste su pedido de modo que la función de fundición se realice antes del cálculo.
Por ejemplo, esta cláusula puede producir resultados incoherentes:
SELECT("XY". "X") AS DECIMAL(1,1)) AS "X"
CAST(SUM
Pero esta cláusula producirá siempre el mismo resultado:
SELECTSUM(CAST(("XY".
"X") AS DECIMAL(1,1))) AS "X"