Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que a precisão está diminuindo ao multiplicar a soma por outro número


Agregando um numeric(18, 8) com SOMA resulta no tipo de dados numeric(38, 8) .

Como o tipo de dados resultante é calculado ao multiplicar algo por numérico pode ser encontrado aqui:Precisão , Escala e Comprimento (Transact-SQL)

O tipo de dados para sua constante -1 é numeric(1, 0)

A precisão é p1 + p2 + 1 =40
A escala é s1 + s2 =8

A precisão máxima é 38 e isso deixa você com numeric(38, 6) .

Leia mais sobre por que é numeric(38, 6) aqui:Multiplicação e divisão com números