0

使用此查询,我得到一个比表少两个的结果,因为它们不包括在计数中,我想在结果中获得 NULL 值。为此,我很确定我需要使用某种子查询,但我不确定如何使用,因为所讨论的属性是一个聚合。

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

GROUP BY Equipment.SerialNo, Name
4

1 回答 1

4

您需要将您的更改inner join为 aleft outer join并计算其他内容,而不是Assignment.SerialNo要计算所有行 - 使用count(*)或其他不为空的属性,因为count(column)该列不包括空值。如果您不希望Assignment.SerialNo计数中包含空值,请继续在该列上进行聚合。

根据定义,内连接将跳过值 where Assignment.SerialNois NULL- 外连接将包括它们。

于 2012-11-26T22:55:44.210 回答