Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi la précision diminue lorsque la somme est multipliée par un autre nombre

Agrégation d'un numeric(18, 8) avec SOMME résultats dans le type de données numeric(38, 8) .

La façon dont le type de données résultant est calculé lors de la multiplication de quelque chose avec numérique peut être trouvée ici :Précision , Échelle et Longueur (Transact-SQL)

Le type de données de votre constante -1 est numeric(1, 0)

La précision est p1 + p2 + 1 =40
L'échelle est s1 + s2 =8

La précision maximale est de 38 et cela vous laisse avec numeric(38, 6) .

En savoir plus sur la raison pour laquelle il est numeric(38, 6) ici :Multiplication et division avec des nombres