微软访问中高于平均水平的查询 - 设计视图

时间:2018-04-17 01:35:12

标签: ms-access ms-access-2010

该表包含2列 - 第一个类型为true,第二个类型为AutoNumber(ID)

我需要显示其价值高于平均值的人的身份证。

如何在“设计”视图中执行此操作(不在sql中,仅在“设计”视图中)?

我面临以下错误: enter image description here

1 个答案:

答案 0 :(得分:0)

您可以像这样使用SQL:

SELECT id
FROM Table1
    ,(
        SELECT Avg(Table1.num) AS avgnum
        FROM Table1
        ) AS a
WHERE num > a.avgnum;

在设计视图中,如果您使用平均值计算创建其他查询,则可以执行相同操作,让我们将其命名为qryAvg:

SELECT Avg(Table1.num) AS AvgOfnum
FROM Table1;

然后创建另一个最终查询,使用qryAvg:

SELECT Table1.id
FROM Table1, qryAvg
WHERE (((Table1.num)>[AvgOfNum]));

不幸的是,查询构建器不允许在图形模式下使用子查询,但在这种简单的情况下,您可以完全避免使用子查询,只需使用域聚合函数:

SELECT Table1.id
FROM Table1
WHERE (((Table1.num)>DAvg("num","Table1")));

在这种情况下,如果num为Long Integer,则需要将域函数的结果强制转换为Long Integer:

SELECT Table1.id
FROM Table1
WHERE (((Table1.num)>CLng(DAvg("num","Table1"))));