1

想象一个包含字段(Id、Valid、Value)的表

有效 = 布尔值 = 0 到 100 之间的数字

我想要的是一份报告,它计算(valid = 0)的记录数,然后给我(value < 70)的案例总数和(value >= 70)的案例数。

问题是某些记录上的“值”字段可能为空,我只想要值字段不为空的记录。

我知道要计算第二个值(值> = 70),但问题是我不能简单地做(记录总数 - 值 < 70 的记录数),因为存在问题“值”为空的记录...

然后我想用这些值创建图形,以查看低于和高于 70 的记录的百分比。

4

1 回答 1

0

"问题是某些记录上的 "value" 字段可能为空,我只想要 value 字段不为空的记录

使用WHERE子句排除“值”字段为 Null 的行。

这是 的示例数据tblMetraton

Id Valid Valu
 1    -1    2
 2     0    4
 3    -1    6
 4     0
 5     0   90

我用于Valu字段名称是因为Value是保留字。

您可以Count()在查询中使用该函数并利用它仅计算非 Null 值的事实。因此,使用返回非 Null 值(我使用 1)Count()的表达式用于您要匹配的条件,否则使用 Null。IIf()

SELECT
    Count(IIf(Valid=0,1,Null)) AS valid_false,
    Count(IIf(Valu<70,1,Null)) AS below_70,
    Count(IIf([Valu]>=70,1,Null)) AS at_least70
FROM tblMetraton AS m
WHERE (((m.[Valu]) Is Not Null));

根据我在 中的示例数据tblMetraton,该查询为我提供了这个结果集。

valid_false below_70 at_least70
          2        3          1

如果我的样本数据没有解决您正在处理的可变性,和/或如果我的查询结果不符合您的要求,请向我们展示您自己的样本数据以及基于该样本的您想要的结果。

于 2012-07-26T00:54:41.513 回答