当前位置: 代码迷 >> Sql Server >> 执行存储过程的时候出现 警告: 聚合或其它 SET 操作消除了空值。该怎么解决
  详细解决方案

执行存储过程的时候出现 警告: 聚合或其它 SET 操作消除了空值。该怎么解决

热度:369   发布时间:2016-04-27 12:33:01.0
执行存储过程的时候出现 警告: 聚合或其它 SET 操作消除了空值。
SQL code
CREATE Proc GetResultFee@YearNo varchar(4),@MonthNo varchar(2)ASBEGINInsert Into TB_EmpFeeResult Select A.工号,B.statYear AS 统计年份,B.statMonth AS 统计月份,A.纯计件录入工资,A.纯计件加班工资,B.年工,C.奖金,D.扣罚,E.所得税,F.InsuranceFee AS 缴纳保险,G.ResultFee AS 寝室费用,0 AS 实发工资FROM TB_JobSalary A,V_GetYearFee B,V_GetReWardFee C,V_GetPenFee D,V_GetTaxFee E,V_GetInsFee F,V_GetRoomFee GWHERE A.工号=B.EmpNo AND A.工号=C.EmpNo AND A.工号=D.EmpNo AND A.工号=E.EmpNo AND A.工号=F.EmpNo AND A.工号=G.EmpNo AND [email protected] AND [email protected]END;GO


帮忙分析下原因

------解决方案--------------------
无所谓,就是忽略了空值.没关系的.
------解决方案--------------------
这是因为你相加的数值里含有空值,对你的结果没影响的
举个例子

SQL code
select   sum(col) from    (    select 1 as col union     select null union     select 3    )t/**----------- 4(所影响的行数为 1 行)警告: 聚合或其它 SET 操作消除了空值。**/
------解决方案--------------------
SQL code
 换成 select isnull(字段,0)
------解决方案--------------------
不懂,up
------解决方案--------------------
不懂,up
------解决方案--------------------
这个问题估计跟空值没有关系,看看TB_EmpFeeResult表的字段个数和查询结果的个数是否一致,各字段的类型是否一样,如类型不一样需要转换类型
  相关解决方案