我在这里有这样的陈述:
SELECT sum(table1.foo + table1.bar) AS Sum
FROM table1
GROUP BY Fname;
当我尝试添加来自foo和bar的数字时,如果来自foo或bar的一个值为null,则会抛出数字并给出不同的计数总和
foo | bar
6 4
5 null
9 1
2 1
3 null
我希望它添加所有数字,总共给我31个
但在这种情况下它总共给了我23个 会爱一些帮助!谢谢!
答案 0 :(得分:1)
使用SELECT sum(coalesce(table1.foo, 0) + coalesce(table1.bar, 0)) AS Sum
FROM table1
GROUP BY Fname;
:
group by
如果您想要一行的总计,则需要删除SELECT sum(coalesce(table1.foo, 0) + coalesce(table1.bar, 0)) AS Sum
FROM table1;
:
{{1}}
答案 1 :(得分:0)
任何数字+ NULL = NULL。您希望向引擎指示当它看到NULL时,它应该将该NULL值视为0。
SELECT sum(ISNULL(table1.foo, 0) + ISNULL(table1.bar,0)) AS Sum
FROM table1
GROUP BY Fname;
答案 2 :(得分:-1)
我相信您需要使用" ISNULL"将SQL替换为零。
尝试: SELECT sum(ISNULL(fix_bat_sum.foo,0)+ ISNULL(fix_bat_sum.bar,0))AS Sum