Функция Access Nz () не работает в запросе - PullRequest
0 голосов
/ 15 января 2010

У меня много заказов в tblOrders и несколько доставок в tblDeliveries.

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

Конечно, это дает мне много полей "TotalDelivered" со значениями NULL. Так как Access вернет значение NULL, если я использую их в любой сумме, мне нужно получить ноль. Я думал создать поле, подобное этому:

GrandTotal: Nz([TotalDelivered], 0)

но это не сработало: неправильная синтаксическая ошибка.

Я также пытался поместить функцию Sum () непосредственно в функцию Nz (), но и этого не получилось.

1 Ответ

4 голосов
/ 15 января 2010

Во-первых, если бы вы использовали запрос, как указано выше, он не возвращал бы нулевые значения, так как вы используете 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...