当左连接不匹配时,如何将零值加入?

时间:2014-08-22 18:06:21

标签: sql ms-access ms-access-2010

我希望加入字段计数从查询qCallCount到查询qCustomers的结果。我想我想使用左连接,因为qCustomers数据集中的客户在qCallCount数据集中没有匹配,但我不想从结果中删除它们。

我目前的查询...

SELECT a.CustomerID, b.Count, a.Customer_Segmentation
FROM qCustomers AS a LEFT JOIN qCallCount AS b ON a.CustomerID=b.CustomerID;

我的问题是,如果qCallCount中没有匹配,有没有办法让此查询结果中Count字段的值为0? 如果这是Excel,我会写一个= IFERROR(VLOOKUP(CustomerID,qCallCount,Count,False),0)

为什么我需要这个?我最终会计算平均avg(Count) as Average次,对于那些失败的比赛来说,将其视为零是很重要的,因为那是他们实际的目标。

谢谢!

2 个答案:

答案 0 :(得分:1)

Check null value in MS Access Query

您可以检查IsNull(b.Count,0)

是计数列的名称,还是使用函数Count?

答案 1 :(得分:0)

VB / VBA / MS Access无效合并函数为Nz。 (在VB6中,IsNull与SQL Server中的不同 - 它是一个不同的函数,它返回一个布尔值,指示值是否为Null。)所以它看起来像这样:

SELECT
   a.CustomerID,
   Nz(b.Count, 0) AS CallCount,
   a.Customer_Segmentation
FROM
   qCustomers AS a
   LEFT JOIN qCallCount AS b ON a.CustomerID=b.CustomerID;