我在尝试将两列总和加在一起时遇到了问题。 我创建了一个包含所有正确数据的视图,但是当我尝试执行如下查询时:
Select ID, Sum(ColumnA),
Sum(ColumnB)
Sum(ColumnA) + Sum(ColumnB) AS ColumnC
From View1
Group by ID
ColumnC图只有在两列中都有数据时才是正确的,如果ColumnB中只有数据,那么它会显示,但如果ColumnA中只有数据则不然。
有时当ColumnA或B中没有任何数据时它会为NULL,所以这可能是问题所在。 希望有办法解决这个问题。
干杯
答案 0 :(得分:3)
尝试使用ISNULL
将零替换为NULL:
Select ID, Sum(ColumnA),
Sum(ColumnB)
ISNULL(Sum(ColumnA),0) + ISNULL(Sum(ColumnB),0) AS ColumnC
From View1
Group by ID
答案 1 :(得分:2)
向null值添加内容会产生null结果,null不会转换为零。您必须明确地进行转换:
Select ID, Sum(ColumnA),
Sum(ColumnB)
isnull(Sum(ColumnA), 0) + isnull(Sum(ColumnB), 0) AS ColumnC
From View1
Group by ID
答案 2 :(得分:1)
您可以使用COALESCE
将NULL
输入替换为计算,如下所示。
COALESCE(Sum(ColumnA),0) + COALESCE(Sum(ColumnB),0) + AS ColumnC
或ISNULL
和其他2个答案一样。 Doesn't matter which如果可移植性不是问题。