|
> グループ内のTop10を抽出するには、どうすればいいでしょうか?
一つのクエリでやるのは無理ではないかと思います。
いくつかのクエリを組み合わせたクエリを作ることになります。
クエリ1
年月が201310であるものだけを抽出して、TOP10をかける。
クエリ2
年月が201311であるものだけを抽出して、TOP10をかける。
クエリ3
クエリ1とクエリ2のユニオンクエリを作る。
年月が2つだけなら、上記の程度で済みますが、12か月分を集計するとなると、
クエリを13個作らなければならなくなるので、ちょっと面倒そうですね。
DCount関数を使って、全てのレコードの年月ごとの順位を付け、
順位が10以下であるレコードを表示する
という方法も考えられますが、
きっと激遅で、使い物にはならないと思います。
順位付けをしたいということですが、
アクセスは、
あるレコードの値を、他のレコードの値によって決める
という作業が苦手ですので、
アクセスで順位付けをすることは、一筋縄ではいきません。
私ならどうやるかですが、VBAを使って、
第1に、テーブルに順位フィールドを設け、
第2に、テーブルのデータを、年月、金額の順で並び替えたレコードセットを作り、
レコードセットをループさせて、
レコードセットの順位フィールドの値を書き替えた上で
(11位以下のレコードにも順位を付ける)、
第3に、テーブルの順位フィールドの値が10以下であるレコードを抽出するクエリを作る
という手順を踏むと思います。
|
|