【问题标题】:Issue getting COUNT to return NULL values as 0问题让 COUNT 将 NULL 值返回为 0
【发布时间】:2015-04-09 16:58:55
【问题描述】:

我需要一个 Count 来在它没有发现任何内容时返回 0。

我发现一个资源说我需要使用 MS Access 的 NZ 功能,但它似乎不起作用。都是一张表,所以连接不是问题。

SELECT tbl_Supporting.Ref, tbl_Supporting.Application, tbl_Supporting.Level, NZ(Count(tbl_Supporting.Level),0) AS CountOfLevel34
FROM tbl_Supporting
GROUP BY tbl_Supporting.Ref, tbl_Supporting.Application, tbl_Supporting.Level
WHERE (((tbl_Supporting.Level)=3)) OR (((tbl_Supporting.Level)=4));

似乎返回与

完全相同的东西
SELECT tbl_Supporting.Ref, tbl_Supporting.Application, tbl_Supporting.Level, Count(tbl_Supporting.Level AS CountOfLevel34
FROM tbl_Supporting
GROUP BY tbl_Supporting.Ref, tbl_Supporting.Application, tbl_Supporting.Level
WHERE (((tbl_Supporting.Level)=3)) OR (((tbl_Supporting.Level)=4));

谁能告诉我为什么会这样?它肯定应该返回 NULL 值。

【问题讨论】:

    标签: mysql ms-access count null


    【解决方案1】:

    使用 IFNULL 函数。即 IFNULL(count(field), 0)

    https://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_ifnull

    编辑:如果问题出在 MS Access 中,则将 NZ 函数移动到计数参数中:

    count(nz(tbl_Supporting.Level),0)

    【讨论】:

      【解决方案2】:

      如你所愿:

      WHERE tbl_Supporting.Level=3 
      

      您不会检索,更不用说计数,任何 Level 为 Null 的记录。

      所以 Nz 不能在这里添加任何东西:

      NZ(Count(tbl_Supporting.Level),0)
      

      您将不得不修改您的标准。

      好的,那么你可能需要 Sum 而不是 Count:

      SELECT tbl_Supporting.Ref, tbl_Supporting.Application, tbl_Supporting.Level, Sum(Int(tbl_Supporting.Level / 3)) AS CountOfLevel34
      FROM tbl_Supporting
      GROUP BY tbl_Supporting.Ref, tbl_Supporting.Application, tbl_Supporting.Level
      WHERE (((tbl_Supporting.Level)=3)) OR (((tbl_Supporting.Level)=4));
      

      【讨论】:

      • 明白。我要做的是计算每个应用程序的所有级别以及 3s 和 4s。但是对于任何级别 1 或 2 都返回零。现在我明白了为什么我的标准是错误的,但我不确定如何使计数仅适用于级别为 3 或 4 但如果是 1 或 2 则返回零。
      • 您可以使用我添加的“智能”代码。智能意味着它非常特定于您的值 1,2 和 3,4。如果您添加 5 级,则必须对其进行调整,例如使用 IIf 构造。
      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 2016-12-08
      • 2012-06-15
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2020-12-22
      相关资源
      最近更新 更多