我有一个表“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
子句不变..
答案 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