本帖最后由 poxiao1985 于 2009-06-22 09:47:46 编辑

解决方案 »

  1.   

    这个不会影响结果 比如有一列为1,2,null,3用sum函数就会警告,但结果仍然为6。想要去掉警告设置如下SET   ANSI_WARNINGS     OFF 
      

  2.   

    哦,谢谢。
    现在知道为什么报警了。因为update facility_detail set Tax = @apportioned_value *(isnull(@sum_out_count, 0)/@sum_in_count)* (isnull(TotalMoney, 0) / @sum_value)
          from facility_detail 
          where particular_id = @particular_id and bill_type=1
    这句没有执行,Tax为null。
    为什么 if @sum_in_count = isnull(@sum_out_count, 0)加上就能执行,去掉就不执行了呢?
      

  3.   

    isnull(@sum_out_count, 0)不会出现null
      

  4.   

    嗯,这个我知道,关键是现在去掉if语句就会报错。加上就OK,这是为什么?
      

  5.   

    为什么 if @sum_in_count = isnull(@sum_out_count, 0)加上就能执行,去掉就不执行了呢?
    这句可以去掉NULL
      

  6.   


    上面不都解析了!
    不理解isnull函数吧?自己查文档。