2012-11-23 3 views
0

매개 변수에 대한 여러 값의 평균을 계산하는 저장 프로 시저가 있습니다.평균 계산시 NULL 값 처리

다음은 코드 조각의 : 시스템이 NULL 값의 평균을 계산하고 @valFound 변수에 결과를 할당하려고으로

WHILE @@FETCH_STATUS = 0 
BEGIN    
    SELECT 
     @valFound = AVG(FilterSurface) 
    FROM 
     [tblVAR_FilterSurface] 
    WHERE 
     refDate >= DATEADD(DAY, -30, @refDate) 
     AND refDate <= DATEADD(DAY, 0, @refDate) 
     AND patientId = @patientId 

    INSERT INTO __TEMP(PatientId, RefDate, ModifyDate, FilterSurface) 
    VALUES(@patientId, @refDate, @modifyDate, @valFound); 

    SET @valFound = NULL 

    FETCH NEXT FROM db_cursor INTO @patientId, @refDate, @modifyDate 
END 

때때로이 저장 프로 시저가 실패합니다. 문제는 그 변수에 결과를 할당하는 것이라고 생각합니다.

올바르게 Null 값을 처리하기 위해 저장 프로 시저를 어떻게 수정할 수 있습니까?

답변

2

하나 (ISNULL (FilterSurface, 0)) @valFound = 평균에 선택을 변경하거나 포함하도록 WHERE 절을 변경하고 0으로 널 (null)을 계산하거나 그들에게

을 제외 할 경우 FilterSurface는 따라 null가 아닌