2010-08-09 32 views
0

我使用的是MS SQL,並在這裏工作是我的查詢......SQL數學問題總在 - 拆卸時任一條件

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

有趣的是,查詢,因爲它凌駕於返回「NULL」 ......但是,如果我刪除的最後2個條件,它工作正常,任何一個(返回一個實數)

澄清,這些查詢做工精細

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

SELECT SUM(Quantity) FROM table1 
WHERE [item_no]='0052556' 
AND [qty_to_ship] > 0 

還指出: '類型' 是一個PK,INT NOT NULL

什麼可能導致此?

回答

2

您是否有一條記錄可以滿足您(限制最多)WHERE中的所有要求?

如果沒有 - 那就是你的口水。

編輯:RedFilter的評論是正確的。您可以在選定部分添加自己的邏輯(ISNULL等)來改變NULL到你喜歡的值(如0,例如)

+0

這幾乎是5日上午在這裏,你是絕對正確的,現在我覺得很傻... 感謝! – Sev 2010-08-09 11:58:00

2

簡單地說,有兩個匹配的條款沒有記錄

[qty_to_ship] > 0 
AND [type] = 5 

或匹配的記錄在Quantity字段中包含NULL。

+0

謝謝!你是對的...... – Sev 2010-08-09 12:00:10

0

請檢查下面的查詢是否返回任何行。

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

如果這是你返回一個ATLEAST一行,然後總和不應返回NULL