2

MS Access データベースに、tblMember、tblPoint、tblRace、tblRaceType、および tblResult の 5 つのテーブルがあります。(すべてに主キーがあります。) 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選択の最後で削除します。これは単なる 1 つのポイント値であり、合計が必要です。

ポイントでグループ化すると、メンバーごとに 1 つの行と、メンバーが獲得したポイント値が得られることを意味します。これはおそらく意図したものではありません。

于 2012-04-21T16:59:29.000 に答える