Access查询中按不同列功能选择列

Posted

技术标签:

【中文标题】Access查询中按不同列功能选择列【英文标题】:Select column by different column function in Access query 【发布时间】:2013-08-26 15:24:07 【问题描述】:

我在 Access 2010 中有下表。

EQID Breaker Circuit Rating
1    A       One     1000
2    A       Two     1500
3    A       Three   500
4    A       Four    1000
5    B       One     1500
6    B       Two     2000

我想创建一个按断路器分组的查询,并显示最低评级和该评级的相关电路。我了解如何在不显示最低等级电路的情况下执行此操作。

我想要的查询结果是:

EQID Breaker Circuit Rating
1    A       Three   500
2    B       One     1500

【问题讨论】:

显示您尝试过的查询,我们将一起解决 【参考方案1】:

试试这个:

SELECT a.*
FROM table AS a
INNER JOIN (
    SELECT Breaker, MIN(Rating) AS min_rating
    FROM table
    GROUP BY Breaker
) AS b
ON a.Breaker = b.Breaker AND
   a.Rating = b.min_rating;

SQLFiddle:http://www.sqlfiddle.com/#!2/ea4fb/2

【讨论】:

完美。谢谢乍得。没想到回复这么快,也没有收到自动回复通知。【参考方案2】:

你可以试试下面的:

SELECT t.EQID, t.Breaker, t.Circuit, t.Rating 
FROM test t 
INNER JOIN 
(
  SELECT a.Breaker, MIN(a.Rating) AS Rating 
  FROM test a 
  GROUP BY Breaker
 ) AS tmp 
ON tmp.Breaker = t.Breaker AND tmp.Rating = t.Rating;

Sql 小提琴演示:http://sqlfiddle.com/#!2/fe796/19

【讨论】:

Access 可能会在此处抱怨“循环引用”:MIN(a.Rating) AS Rating 如果发生这种情况,您可以通过不重新使用字段名称作为别名来消除错误:MIN(a.Rating) AS MinOfRating HansUp 大获成功。谢谢 感谢 Anda 和 @Hansup 提供信息。它帮助很大。

以上是关于Access查询中按不同列功能选择列的主要内容,如果未能解决你的问题,请参考以下文章

在 Access 中有多个列的查询中选择单个不同的列

如何在Access能将2个表中的多字段不同查询出来??

Amazon athena 无法读取 S3 Access 日志文件,Athena 选择查询为每一列返回空结果集

如何在 Access 中对表的所有列进行 UNION ALL

ACCESS有一个表,我想根据A列或是C列两列数据中的任意数据进行查询,怎么创建查询? 哪位高人可以指点下

Access 2016 SQL:查找不同表的两列之间的最小绝对差