Se trata de una peculiaridad del motor SQL que impulsa 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, te recomendamos que ajustes tu pedido para que la función de fundido se realice antes del cálculo.
Por ejemplo, esta cláusula puede producir resultados incoherentes:
SELECT
CAST(SUM("XY"."X") AS DECIMAL(1,1)) AS "X"
Pero esta cláusula producirá siempre el mismo resultado:
SELECT
SUM(CAST(("XY"."X") COMO DECIMAL(1,1)) COMO "X"