2011-04-21 3 views
0

T-SQL에서이 오류를 어떻게 해결할 수 있습니까? 73 산술 오버플로 오류 변환 INT 데이터 형식 숫자를로 라인을int를 데이터 유형 숫자로 변환하는 산술 오버플로 오류

SET @dPERCENT_QC_COMPLETED = CASE WHEN @NUM_QC_RECEIVED = 0 
           THEN 0 
           ELSE (100 * @NUM_QC_COMPLETED/@NUM_QC_RECEIVED) 
          END 

메시지 8115, 수준 16, 상태 8 :

SET @dPERCENT_QC_COMPLETED = CASE WHEN @NUM_QC_RECEIVED = 0 
           THEN 0 
           ELSE @NUM_QC_COMPLETED/@NUM_QC_RECEIVED 
          END 

그러나이 라인 아래 오류 코드와 함께 실패합니다 다음 줄은 성공적으로 실행 .

@dPERCENT_QC_COMPLETED는 십진수입니다 (2). 다른 변수는 정수입니다. 문제는 현재이 정수 값 = 1이므로이 표현식이 1로 평가된다는 것입니다.

답변

1

decimal(2)은 절대로 100 %에 대처할 수 없습니다. 왜 그 데이터 유형을 사용하고 있습니까?

+0

오, 나는 그것을 보지 못했습니다! 내가 100을 곱하는 것을 잊어 버렸습니다. 당신 말이 맞습니다. 이거 고쳐! – salvationishere

관련 문제