Essa é uma peculiaridade do mecanismo SQL que alimenta nossas consultas. Quando um cálculo (como SUM) é realizado em vários tipos decimais com valores diferentes, os valores são convertidos em um tipo comum e arredondados. Os valores negativos, em particular, podem resultar em perda de precisão e produzir resultados de consulta diferentes a cada execução.
Para evitar isso, recomendamos que você ajuste a ordem para que a função de conversão seja executada antes do cálculo.
Por exemplo, essa cláusula pode produzir resultados inconsistentes:
SELECT
CAST(SUM("XY". "X") AS DECIMAL(1,1)) AS "X"
Mas essa cláusula produzirá o mesmo resultado todas as vezes:
SELECT
SUM(CAST(("XY"."X") AS DECIMAL(1,1))) AS "X" ) AS DECIMAL(1,1)) AS "X"