Wie kann man arithmetischen Überlauf in SQL server vermeiden, wenn ich kein Spaltenschicksal habe?

Ich habe diese Frage:

SELECT client, month1, month2, month3, month4, month5, month6, (isnull(month1, 0) + isnull(month2, 0) + isnull(month3, 0) + isnull(month4, 0) + isnull(month5, 0) + isnull(month6, 0)) /6 as prom FROM client_total_sales 

Monate können Nullwerte haben.

Ich habe mit Runde versucht, datatypen umzuwandeln, aber das Problem bleibt bestehen.

SQL server Management Studio zeigt den Fehler während der Belastung der Abfrage, ich meine, ein paar Ergebnisse zu sehen, bevor der Fehler herauskommt.

Fehlermeldung: Herren 8115, Stufe 16, Zustand 2, Zeile 1 Fehler de desbordamiento aritmético (arithmetischer Überlauferrors) al convertir Ausdruck al tipo de datos int.

Wenn der Fehler Arithmetic Overflow in der berechneten Spalte prom , können Sie eine Promotion auf einen datatyp erzwingen, der mehr data durch das Gießen eines der Parameter der Berechnung wie folgt aufnehmen kann:

 SELECT client, month1, month2, month3, month4, month5, month6, ( cast(isnull(month1, 0) as bigint) + isnull(month2, 0) + isnull(month3, 0) + isnull(month4, 0) + isnull(month5, 0) + isnull(month6, 0)) /6 as prom FROM client_total_sales 

Ich weiß nicht, welchen datatyp monthX ich wähle BIGINT für das Beispiel. SQL server fördert nicht automatisch BIGINT, so dass Sie es selbst tun müssen.