为什么SUM(COL1 + COL2)和SUM(COL1)+ SUM(COL2)的收益率不同?

时间:2014-07-30 09:58:22

标签: sql sql-server tsql aggregate-functions aggregation

这是一个相当奇怪的结果。我希望这些产品具有相同的产量。

Please see screenshot of the command and result

以下是从数据库中提取excel数据的链接。 https://twentius.opendrive.com/files?89038281_muoyg

编辑:用于SUM的列具有NULL单元格。

3 个答案:

答案 0 :(得分:5)

可能有一些NULL值。 NULL + 1NULLSUM过滤掉了NULL个值。

您可以使用ISNULL(JAN, 0) + ISNULL(FEB, 0) + ...来解决此问题。

答案 1 :(得分:4)

几乎可以肯定NULL值:

declare @t table (Col1 int,Col2 int)
insert into @t(Col1,Col2) values
(1,3),
(5,7),
(9,NULL)

select SUM(Col1+Col2),SUM(Col1)+SUM(Col2) from @t

产地:

----------- -----------
16          25

答案 2 :(得分:0)

这是因为null,试试这个(我使用Damien给出的例子)

从@t

中选择sum(isnull(col1,0)+ isnull(col2,0))