2009-09-04 3 views
32

테이블에서 열의 합계를 얻으려고하면 오류 번호가 Arithmetic overflow error converting expression to data type int이됩니다. 그 결과 숫자는 INT에 대해 커집니다. 그래서 다음을 사용하여 BIGINT에 캐스팅하려고했습니다.INT를 합산 할 때 산술 오버플로 오류가 발생합니다.이를 어떻게 BIGINT로 캐스팅합니까?

SELECT CAST(SUM(columnname) AS BIGINT) FROM tablename 

이렇게하면 나에게도 같은 오류가 발생합니다. 내가 뭘 잘못하고 있는거야?

답변

58

합산 전에 변환 해보십시오. 예.

SELECT SUM(CONVERT(bigint, columnname)) FROM tablename 

또는

SELECT SUM(CAST(columnname AS BIGINT)) FROM tablename 
+0

감사합니다. 그건 효과가 있고 어디서 잘못되었는지 알 수 있어요. –

관련 문제