2

我在 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;

有人能指出我正确的方向吗?

4

1 回答 1

3

我会说这个

GROUP BY tblMember.MemberName, tblPoint.Points
ORDER BY tblPoint.Points DESC;

可能应该更像这样:

GROUP BY tblMember.MemberName
ORDER BY Sum(tblPoint.Points) DESC;

tblPoint.Points此外,在您的选择结束时删除。这只是一个单点值,你想要总和。

按点分组意味着您将获得每个成员的一行和他们得分的点值 - 可能不是您想要的。

于 2012-04-21T16:59:29.000 回答