Stored procedures 计算平均值时处理空值

Stored procedures 计算平均值时处理空值,stored-procedures,null,sql-server-2008-r2,average,Stored Procedures,Null,Sql Server 2008 R2,Average,我有一个存储过程,它根据参数计算几个值的平均值 下面是一段代码: WHILE @@FETCH_STATUS = 0 BEGIN SELECT @valFound = AVG(FilterSurface) FROM [tblVAR_FilterSurface] WHERE refDate >= DATEADD(DAY, -30, @refDate) AND refDa

我有一个存储过程,它根据参数计算几个值的平均值

下面是一段代码:

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
WHILE@@FETCH\u STATUS=0
开始
挑选
@valFound=平均值(过滤器表面)
从…起
[tblVAR_过滤器表面]
哪里
refDate>=DATEADD(第-30天,@refDate)

和refDate将select更改为@valFound=avg(isnull(FilterSurface,0))或将where子句更改为include,并且FilterSurface不为null,具体取决于您希望将null计数为零还是排除它们