2012-11-26 259 views
0

使用此查詢,我得到的結果是表格的兩倍,因爲它們不包含在count中,我希望得到結果中的NULL值。要做到這一點,我很確定我需要使用某種子查詢,但我不知道如何,因爲有問題的屬性是一個聚合。使用COUNT返回空值

SELECT Equipment.SerialNo , Name, COUNT(Assignment.SerialNo) 
FROM Equipment 
INNER JOIN Assignment 
    ON Assignment.SerialNo = Equipment.SerialNo 

GROUP BY Equipment.SerialNo, Name 
+0

'計數(*)'包括空值 – Laurence

+0

那麼什麼是限制我的結果?在這種情況下,有問題的項目不會參與Assignment.SerialNo,因此計數會錯過它們。 –

回答

4

你需要,如果你想所有行數來改變你的inner joinleft outer join和計數等東西比Assignment.SerialNo - 使用count(*)或其他財產,將不爲空,因爲count(column)不包括該列空。如果您不希望計數中包含空值Assignment.SerialNo,則繼續在該列上進行彙總。

根據定義的內部連接將跳過Assignment.SerialNoNULL的值 - 外部連接將包括它們。

+0

現在我已經說過我改變了主意。據推測,他希望計數爲0的缺少的行,在這種情況下'Count(Assignment.SerialNo)'是正確的。 – Laurence

+0

他呢?我對這句話感到困惑。我會編輯兩種情況。 – Colleen