如何从具有最大字段值的记录集中选择记录?

时间:2016-05-27 13:54:04

标签: vba ms-access access-vba max recordset

我有一个表“rd_details”如下:

GNo     RD      ROI 
11     1000    11.75
12     2000    11.75
12     5020    11.75
12     2100    11.75
11     3000    11.75
11     4000    11.75

我的结果应该是

代表GNo。 11,我应该得到11,4000,11.75
对于GNo。 12,我应该得到12,5020,11.75

这些是具有RD最大值的记录。 当我将GNo键入11时,我应该将RD设置为4000,将ROI设置为11.75

我有以下查询。我正在使用MS Access与VBA。

Set rst1 = dbs.OpenRecordset("select * from rd_details where gno=" & Gno)

请修改上述查询,保持where子句不变..

1 个答案:

答案 0 :(得分:2)

您可以在MS Acces数据库引擎中aggregate data。在这种情况下,您必须使用MAX函数。

select GNO, MAX(RD) AS RD, ROI
from rd_details
group by GNO, ROI

另一种方式(如问题评论中提到的Michael Z.)是使用嵌套查询。

select a.GNO, a.RD, b.ROI
from rd_details AS b INNER JOIN
    (select GNO, MAX(RD) AS RD
    from rd_details
    group by GNO) AS a ON b.GNO = a.GNO AND b.RD = a.RD