我在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;
有人能指出我正确的方向吗?
答案 0 :(得分:3)
我会说这个
GROUP BY tblMember.MemberName, tblPoint.Points
ORDER BY tblPoint.Points DESC;
应该更像是这样:
GROUP BY tblMember.MemberName
ORDER BY Sum(tblPoint.Points) DESC;
此外,请在选择结尾处删除tblPoint.Points
。这只是一个单点值,你需要总和。
按分数分组意味着每个成员获得一行并获得他们得分的值 - 可能不是您想要的。