のための右のクエリを見つけることができないので、私は、誰かが私を助けることを願って、あなたは各行に一意のIDが本当に必要です。基本的な考え方は次のとおりです。
select club, sum(points), sum(score), count(*) as nummatches
from t
where score in (select top 5 t2.score
from t as t2
where t2.club = t.club
order by t2.score desc
)
group by club;
問題はMS AccessでTOP
が本当にTOP WITH TIES
を行うということです。したがって、結びつきがある場合、5つ以上の値を取得できます。そのため、クエリには一致の数が含まれています。あなたが行うことができます。この問題を解決するには
、:
select club, sum(points), sum(score), count(*) as nummatches
from t
where score in (select top 5 t2.score
from t as t2
where t2.club = t.club
order by t2.score desc, id -- the `id` makes each row unique
)
group by club;
より多くの問題があるようです。あなたの解決策を試しましたが、t.clubが見つからないというエラーが表示されました。問題は、テーブルtがクロス集計クエリから作成されたクエリであることです。だから私はt.club = short textとid = integerの新しいクエリにパラメータを追加しなければならなかった。しかし、今私がクエリを開始するとき、私はt.clubの値とidの値を入れることを要求します。どのようにこれを解決するためのアイデア? – Jonvejn
't.club'は外部クエリへの参照です。これは間違いなくMS Accessがサポートするものです。 –