Detta är en egenhet hos SQL-motorn som driver våra frågor. När en beräkning (t.ex. SUMMA) utförs på flera decimaltyper med olika värden, sammanförs värdena till en gemensam typ och avrundas. I synnerhet negativa värden kan leda till försämrad precision - och ge olika sökresultat vid varje körning.
För att förhindra detta rekommenderar vi att du justerar din order så att cast-funktionen utförs före beräkningen.
Till exempel kan denna klausul ge inkonsekventa resultat:
SELECT
CAST(SUMMA("XY"."X") AS DECIMAL(1,1)) AS "X"
Men denna klausul kommer att ge samma resultat varje gång:
SELECT
SUM(CAST(("XY"."X") SOM DECIMAL(1,1))) AS "X"