Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché la precisione diminuisce quando si moltiplica la somma per un altro numero

Aggregazione di un numeric(18, 8) con SOMMA risulta nel tipo di dati numeric(38, 8) .

Il modo in cui viene calcolato il tipo di dati risultante quando si moltiplica qualcosa con numerico può essere trovato qui:Precision , Scala e Lunghezza (Transact-SQL)

Il tipo di dati per la tua costante -1 è numeric(1, 0)

La precisione è p1 + p2 + 1 =40
La scala è s1 + s2 =8

La precisione massima è 38 e questo ti lascia con numeric(38, 6) .

Leggi di più sul motivo per cui è numeric(38, 6) qui:Moltiplicazione e divisione con i valori numerici