【发布时间】:2021-10-17 11:17:43
【问题描述】:
我有一个数据库,其中Hours 为integer 字段,PK 如record ID/Autonumber 在表中标识记录。如何使用 SQL 查询获取最大值以及最大值所在的记录 ID 或字段值? 我正在使用.mdb MS Access 数据库。
我目前使用的代码:
with dmpat.ADOQuery1 do
begin
sql.Clear; //Hours is integer field
//Here I would like to get the ID (integer) field value of each of these values:
sql.Add('SELECT MAX(Hours) AS [Max], MIN(Hours) AS [Min], AVG(Hours) AS [AVE]');
sql.Add('FROM Professions');
open;
Max := fields[0];
Min := fields[1];
Ave := fields[2];
end;
这样的事情可能吗? SQL 新手,谢谢!
【问题讨论】:
-
用您使用的数据库标记您的问题。
-
确保您的 Sql 允许多个记录具有最大值和最小值。
-
@MartynA 我该怎么做?
-
看看@forpas 怎么说。就个人而言,由于重复/乘法的问题,我不会尝试在单个查询中获取所有这些值。
-
一般的解决方案是发出3个查询:1)获取最小值和最大值2)获取具有最小值的记录2)获取具有最大值的记录
标签: sql delphi ms-access-2007