SQL查询:使用带左连接的聚合函数时不应为NULL的NULL值

时间:2016-04-05 14:00:57

标签: mysql sql left-join aggregate-functions

我对SQL没有太大的帮助,我试图在这个查询上破解我的头脑。 我有3个表:项目,计算器和partialBilling (注意:您在代码中看到的'计算器'列已添加' k',' l'' m'等等是真实的。 ..i没有给他们这些名字......)。

查询工作正常,但我期望从聚合函数(' sumofTotal'列)的值的部分返回为空值,并且它们不应该是空值。 如果有人在查询中指出错误,我将不胜感激。

a=9.14464745425e-06 b=-1.75179880756 c=0.00066720486385

3 个答案:

答案 0 :(得分:1)

尝试使用IFNULL()

SUM(IFNULL(Calculator.K,0) + ... + IFNULL(Calculator.AR,0)) AS sumofTotal

答案 1 :(得分:1)

而不是专有IFNULL更好地使用标准SQL COALESCE

SUM(COALESCE(Calculator.K,0) + COALESCE(Calculator.L,0), ...`

或者可能更有效率:

SUM(COALESCE(Calculator.K,0)) + SUM(COALESCE(Calculator.L,0)), ...`

答案 2 :(得分:0)

您可以使用ifnull('column_name' , '')之类的表达式代替column_name