Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum die Genauigkeit abnimmt, wenn die Summe mit einer anderen Zahl multipliziert wird

Aggregieren eines numeric(18, 8) mit SUMME ergibt den Datentyp numeric(38, 8) .

Wie der resultierende Datentyp berechnet wird, wenn etwas mit numerisch multipliziert wird, finden Sie hier:Präzision , Skalierung und Länge (Transact-SQL)

Der Datentyp für Ihre Konstante -1 ist numeric(1, 0)

Genauigkeit ist p1 + p2 + 1 =40
Maßstab ist s1 + s2 =8

Die maximale Genauigkeit beträgt 38, und das lässt Sie mit numeric(38, 6) zurück .

Lesen Sie mehr darüber, warum es numeric(38, 6) ist hier:Multiplikation und Division mit Zahlen