【发布时间】:2016-11-04 12:47:55
【问题描述】:
我尝试获取 MS Access 查询以显示我的数据集中的前 3 名运动员,基于他们的总分。总分与运动员及其信息在不同的表格中,这对我来说很困难,因为我是一个菜鸟。我得到了我认为应该可以工作的代码;
SELECT [m].ChildsName, [m].MembershipType, [r].TotalPoints
FROM [Members] AS m, [Results] AS r
WHERE ([m].[MembershipType]) In
(SELECT TOP 3 [m].MembershipType
FROM [Members], [Results]
WHERE ChildsName = m.ChildsName
ORDER BY [r].TotalPoints DESC, [m].MembershipType)
ORDER BY [m].ChildsName, [r].TotalPoints DESC , [m].MembershipType;
唯一的问题是它不起作用。它提出了错误: 子查询“[m].MembershipType”中的备注、OLE 或超链接对象无效
所有这些东西都是从 2 个表、成员和结果中提取的
【问题讨论】:
-
这是您的实际代码吗?因为
[mt].MembershipType是行不通的。请贴出实际代码,这样我们就不用处理抄写的错误了。 -
是的,您的别名应用错误,并且(必须)缺少连接。因此,使用两个单独且简单的选择查询从头开始,然后逐步构建,成功后将它们组合起来。
-
加入? [mt] 是一个错误,但其余的是实际代码
-
你的子查询也不能工作,因为
[m]和[r]没有在那里定义。而第一个ChildsName根本不合格。