求和期间的SQL数学问题-在删除任一条件时有效

求和期间的SQL数学问题-在删除任一条件时有效,sql,Sql,我正在使用MS SQL,这是我的查询 SELECT SUM(Quantity) FROM table1 WHERE [item_no]='0052556' AND [qty_to_ship] > 0 AND [type] = 5 有趣的是,上面的查询返回“NULL”……但是,如果我删除最后两个条件中的任何一个,它都可以正常工作(返回实数) 为了澄清,这些查询工作正常: SELECT SUM(Quantity) FROM table1 WHERE [item_no]='0052556' A

我正在使用MS SQL,这是我的查询

SELECT SUM(Quantity) FROM table1
WHERE [item_no]='0052556'
AND [qty_to_ship] > 0
AND [type] = 5
有趣的是,上面的查询返回“NULL”……但是,如果我删除最后两个条件中的任何一个,它都可以正常工作(返回实数)

为了澄清,这些查询工作正常

SELECT SUM(Quantity) FROM table1
WHERE [item_no]='0052556'
AND [type] = 5

还要注意:“type”是一个PK,int,而不是null


这可能是什么原因造成的?

您是否有一份记录可以满足您(最严格的)WHERE中的所有要求

如果不是,那就是你的答案


编辑:RedFilter的评论是正确的。您可以在选择部分添加您自己的逻辑(ISNULL等),将NULL更改为您喜欢的值(例如0)

您是否有一个记录可以满足您(最严格的)WHERE中的所有要求

如果不是,那就是你的答案


编辑:RedFilter的评论是正确的。您可以在SELECT部分添加自己的逻辑(ISNULL等),将NULL更改为您喜欢的值(例如0)

简单地说,没有与这两个子句匹配的记录

[qty_to_ship] > 0
AND [type] = 5

或者匹配的记录在
数量
字段中包含NULL。

简单地说,没有与这两个子句匹配的记录

[qty_to_ship] > 0
AND [type] = 5

或者匹配的记录在
数量
字段中包含NULL。

请检查以下查询是否返回任何行

SELECT * FROM table1 
WHERE [item_no]='0052556' 
AND [qty_to_ship] > 0 
AND [type] = 5 

如果此查询返回至少一行,则总和不应返回NULL

请检查以下查询是否返回任何行

SELECT * FROM table1 
WHERE [item_no]='0052556' 
AND [qty_to_ship] > 0 
AND [type] = 5 

如果这是返回你至少一行,那么总和不应该返回空值

这里几乎是凌晨5点,你绝对正确,现在我觉得很傻。。。谢谢快到凌晨5点了,你说得很对,现在我觉得自己很傻。。。谢谢