1

我在 Borlands Delphi 7 中创建了一个投票应用程序,用于注册投票并更新访问表 我的访问表由两列组成,第一列是候选人的姓名,第二列是他/她获得的票数

如果我想获得得票最多的候选人,SQL 语句会是什么?

我努力了

SELECT Max(Candidate.[Candidate Name]) AS [MaxOfCandidate Name], Max(Candidate.[Number of  Votes]) AS [MaxOfNumber of  Votes]
FROM Candidate

;

但是这个返回一个值,因此如果有 2 个或多个候选人的票数相同,则只会显示第一个名字。

4

1 回答 1

1

您可以使用Dmax表达式来确定最高投票数。并使用该值来检索与该计数匹配的行。

SELECT [Candidate Name], [Number of  Votes]
FROM Candidate
WHERE [Number of  Votes] = DMax("[Number of  Votes]", "Candidate");

但是DMax是访问特定的。由于您使用的是 Delphi,因此您可能更喜欢更便携的查询。如果是这样,您可以在WHERE子句中使用子查询来获得最大投票数。

SELECT [Candidate Name], [Number of  Votes]
FROM Candidate
WHERE
    [Number of  Votes] = 
        (
            SELECT Max([Number of  Votes])
            FROM Candidate
        );
于 2013-08-20T20:16:32.817 回答