if @activeNum=null这样写是错误的,判断NULL的方法是 if @activeNum is null.

解决方案 »

  1.   

    --if(@activeNum=null)if (@activeNum is null)
      

  2.   

    declare @activeNum int;
    declare @netbarNum int;     select @activeNum=0,@netbarNum=0  ---在这赋个初始值if @withlevel='主管'       begin       select @activeNum=sum(A.activeNums) ,@netbarNum=sum(A.netbarNums)        from SpreaderDteDinfo A inner join SpreaderContact C on A.userID=C.userid        where   A.weekid=@weekid and C.upuserid=@SpreadID        if(@activeNum=null)       beginset @activeNum=0;这里我指定了0,但是最后update的值还是空的,为什么?       end if(@netbarNum=null)beginset @netbarNum=0;       endprint @activeNum
      

  3.   

    if(@netbarNum=null) 改成:if(@netbarNum is null)
    好像不可以直接用“=”和null进行比较吧,要用 "is"来比较
      

  4.   

    这样试一下:
    declare @activeNum int;
    declare @netbarNum int;     if @withlevel='主管'
    begin
           select @activeNum=ISNULL(sum(A.activeNums),0) ,@netbarNum=ISNULL(sum(A.netbarNums),0)
           from SpreaderDteDinfo A inner join SpreaderContact C on A.userID=C.userid 
           where   A.weekid=@weekid and C.upuserid=@SpreadID
    end
    print @activeNum 
      

  5.   

    汇总时对汇总结果用ISNULL()函数处理一下,如:ISNULL(sum(A.activeNums),0)