2016-09-13 2 views
1

Problem illustrated hereSQL arithmetischer Überlauf verursacht durch negative Zahlen teil der Formel

ein berechneter Wert einen arithmetischen Überlauf verursacht aufgrund einigen der Berechnungen in negativen Zahlen in der Aktualisierungsanweisung führen, aber der endgültige Wert sollte konsistent sein mit die deklarierte Spalte. Hilfe bitte!

+0

Bitte ignorieren Sie meinen Tippfehler in der Abbildung des Problems. Die Formel ist: Round ((ExpMth - (CurrMth + .05) + 12 * (ExpYr - CurrYr))/((ExpMth - EffMth) + 12 * (Expr - EffYr)), 6,1) –

+0

nicht was angezeigt wird : Rund ((ExpMth - (CurrMth + .05) + 12 * (ExpYr - CurrYr))/((ExpMth - EffMth) + 12 * (Expr - EffYr)), 7,1) –

+0

Für welches RDBMS ist das? Bitte fügen Sie ein Tag hinzu, um anzugeben, ob Sie 'mysql',' postgresql', 'sql-server',' oracle' oder 'db2' verwenden - oder etwas ganz anderes. –

Antwort

0

Musste jede der Monatsspalten mit der Cast-Funktion umwickeln, um es zum Laufen zu bringen.

aktualisieren @RptTable SET EarningFactor = ROUND ((ExpMth - (CurrMth + 0,5) + 12 * (ExpYr - CurrYr))/((CAST (ExpMth als numeric) - Besetzung (EffMth als numerische)) + 12 * (ExpYr - EffYr)), 6,1)

+0

Froh, dass du es verstanden hast. Ich versuche immer noch, deine Gleichung herauszufinden – Merenix