这类问题不容易发现,只有在发现数据异常时才会注意到。
以下SQL:
select contract.id,contract.group_id,contract.id_ext,contract.customer_id,contract.staff_id,contract.contract_number,contract.amount,COALESCE(SUM(contract_real_income.amount),0) as yishou,ABS(contract.amount-COALESCE(SUM(contract_real_income.amount),0)) as weishou from contract left JOIN contract_real_income on (contract.group_id=contract_real_income.group_id and contract.id_ext=contract_real_income.id_ext) GROUP BY contract.id_ext,contract.group_id HAVING weishou>=1 order by contract.contract_number desc;其中,使用了COALESCE函数,这个函数可以在手册里,查一下,如果没有这个函数,那么sum在统计值为Null时会导致结果错误,相减后的结果也是null,这不是我们期望的结果。
以上SQL为正确SQL,sum求和等操作时,都考虑到null的情况吧。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《mysql中sum求和等类似方法关于null值的处理》
发表评论