Access Nz()函数在查询中不起作用

时间:2010-01-15 12:58:24

标签: sql ms-access vba function null

我在tblOrders中有很多订单,而且在tblDeliveries中有一些交货。

SELECT tblOrders.SkuBestelId, Sum(tblDeliveries.delivered) AS TotalDelivered
FROM tblOrders
INNER JOIN tblDeliveries ON tblOrders.SkuBestelId = tblDeliveries.SkuBestelId
GROUP BY tblOrders .SkuBestelId;

当然,这给了我很多带有NULL值的“TotalDelivered”字段。 如果我使用任何类型的总和,Access将返回NULL值,我需要得到一个零。我想创建一个这样的字段:

GrandTotal: Nz([TotalDelivered], 0)

但它不起作用:语法错误不正确。

我也尝试将Sum()函数直接放在Nz()函数中,但是也没有这样做。

1 个答案:

答案 0 :(得分:4)

首先,如果您要使用上面指定的查询,则不会返回空值,因为您使用 INNER JOIN ,除非实际传递的字段包含空值。

所以,假设您打算使用 LEFT JOIN ,您可以尝试

SELECT tblOrders.SkuBestelId, Sum(NZ([delivered],0)) AS TotalDelivered
FROM tblOrders LEFT JOIN 
tblDeliveries ON tblOrders.SkuBestelId = tblDeliveries.SkuBestelId
GROUP BY tblOrders.SkuBestelId;