我在 MS Access 数据库中有 5 个表:tblMember、tblPoint、tblRace、tblRaceType 和 tblResult。 (所有这些都有主键。)
tblPoint 包含(RaceTypeID、Position、Points)字段。
我想要做的是查看成员参加的所有比赛,查看他们来的位置(存储在 tblResult 中),并查看这些位置是否得分(如 tblPoint 中所定义)。然后我想将每个成员的所有积分加起来并显示这些,以及我查询中的成员名称......
这可能吗?我在下面的这个 SQL 查询中想出了我的最佳镜头:
SELECT Sum(tblPoint.Points) AS SumOfPoints, Count(tblRace.RaceID) AS CountOfRaceID,
tblMember.MemberName, tblPoint.Points
FROM ((tblRaceType INNER JOIN tblPoint ON tblRaceType.RaceTypeID = tblPoint.RaceTypeID)
INNER JOIN tblRace ON tblRaceType.RaceTypeID = tblRace.RaceTypeID) INNER JOIN
(tblMember INNER JOIN tblResult ON tblMember.MemberID = tblResult.MemberID) ON
tblRace.RaceID = tblResult.RaceID
GROUP BY tblMember.MemberName, tblPoint.Points
ORDER BY tblPoint.Points DESC;
有没有人能够指出我正确的方向?
最佳答案
我会说这个
GROUP BY tblMember.MemberName, tblPoint.Points
ORDER BY tblPoint.Points DESC;
应该更像这样:
GROUP BY tblMember.MemberName
ORDER BY Sum(tblPoint.Points) DESC;
另外,删除
tblPoint.Points
在您的选择结束时。这只是一个单点值,你想要总和。按积分分组意味着您将获得每个成员的一行和他们得分的积分 - 可能不是您想要的。
关于带有 JOIN、SUM 和 GROUP BY 的 SQL SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10260984/