在SQL Server 2005中将两列总和相加

时间:2011-10-09 09:02:02

标签: sql sql-server-2005 select view sum

我在尝试将两列总和加在一起时遇到了问题。 我创建了一个包含所有正确数据的视图,但是当我尝试执行如下查询时:

    Select ID, Sum(ColumnA),
    Sum(ColumnB)
    Sum(ColumnA) + Sum(ColumnB) AS ColumnC
    From View1
   Group by ID

ColumnC图只有在两列中都有数据时才是正确的,如果ColumnB中只有数据,那么它会显示,但如果ColumnA中只有数据则不然。

有时当ColumnA或B中没有任何数据时它会为NULL,所以这可能是问题所在。 希望有办法解决这个问题。

干杯

3 个答案:

答案 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)

您可以使用COALESCENULL输入替换为计算,如下所示。

COALESCE(Sum(ColumnA),0) + COALESCE(Sum(ColumnB),0) +  AS ColumnC

ISNULL和其他2个答案一样。 Doesn't matter which如果可移植性不是问题。