用于从Access数据库中查找打击平均值的SQL语句

时间:2015-03-28 01:28:08

标签: sql vba ms-access

我正在使用Microsoft Access数据库创建一个Visual Basic程序。

数据库有两个表。

  • 表1称为Players,包含姓名,点击数,atBats和团队列
  • 表2使用团队和联盟列调用Teams

我需要帮助编写一个SQL语句来查找特定联盟 National American 联盟中击球率最高的玩家。

Batting Average公式为hits除以atBats

代码:

SELECT 
    name, (hits / atBats) AS bAVG 
FROM 
    Players 
INNER JOIN 
    Teams ON Teams.team = Players.Team 
WHERE 
    Teams.league = 'American' 
    AND bAVG = (SELECT MAX(bAVG) FROM Players);

我认为问题在于别名列bAVG

2 个答案:

答案 0 :(得分:0)

连接表中没有列bAVG,因此出错。你可以使用类似的东西:

  

从玩家中选择名称,(点击/ atBats)作为玩家INNER的bAVG   加入团队Teams.team = Players.Team WHERE Teams.league =   '美国'AND(命中/ atBats)=(从中选择MAX((命中/ atBats)   播放器));

答案 1 :(得分:0)

您可以使用order bytop

执行此操作
SELECT TOP 1 name, (hits/atBats) AS bAVG
FROM Players INNER JOIN
     Teams
     ON Teams.team = Players.Team
WHERE Teams.league = 'American'
ORDER BY hits/atBats DESC;