Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


852 / 9994 ←次へ | 前へ→

【12449】Re:グループ内のTop 10にするには?
回答  かるびの  - 13/12/13(金) 3:30 -

引用なし
パスワード
   > グループ内のTop10を抽出するには、どうすればいいでしょうか?
 一つのクエリでやるのは無理ではないかと思います。
 いくつかのクエリを組み合わせたクエリを作ることになります。

 クエリ1
 年月が201310であるものだけを抽出して、TOP10をかける。

 クエリ2 
 年月が201311であるものだけを抽出して、TOP10をかける。

 クエリ3
 クエリ1とクエリ2のユニオンクエリを作る。

 年月が2つだけなら、上記の程度で済みますが、12か月分を集計するとなると、
クエリを13個作らなければならなくなるので、ちょっと面倒そうですね。


 DCount関数を使って、全てのレコードの年月ごとの順位を付け、
順位が10以下であるレコードを表示する
という方法も考えられますが、
きっと激遅で、使い物にはならないと思います。 


 順位付けをしたいということですが、
アクセスは、
あるレコードの値を、他のレコードの値によって決める
という作業が苦手ですので、
アクセスで順位付けをすることは、一筋縄ではいきません。

 
 私ならどうやるかですが、VBAを使って、
第1に、テーブルに順位フィールドを設け、
第2に、テーブルのデータを、年月、金額の順で並び替えたレコードセットを作り、
レコードセットをループさせて、
レコードセットの順位フィールドの値を書き替えた上で
(11位以下のレコードにも順位を付ける)、
第3に、テーブルの順位フィールドの値が10以下であるレコードを抽出するクエリを作る
という手順を踏むと思います。
346 hits

【12448】グループ内のTop 10にするには? Sugano 13/12/12(木) 18:41 質問[未読]
【12449】Re:グループ内のTop 10にするには? かるびの 13/12/13(金) 3:30 回答[未読]

852 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free