パラメータに基づいていくつかの値の平均を計算するストアドプロシージャがあります。
コードの抜粋は次のとおりです。
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値の平均を計算し、その結果を@valFound
変数に割り当てようとすると、このストアドプロシージャが失敗することがあります。問題は、その変数への結果の割り当てだと思います。
null値を正しく処理するために、ストアドプロシージャを変更するにはどうすればよいですか?