HOME > 即効テクニック > Access一般機能 > クエリ・SQL > クエリで順位を計算する

即効テクニック

クエリ・SQL

クエリで順位を計算する

(Access 2000/2002)
DCount関数は、指定されたレコードのセットに含まれるレコードの数を返します。
構文は、「DCount(フィールド名,テーブル名またはクエリ名,条件)」となります。

ここでは、[商品マスター]テーブルに、
     [商品id]フィールド
     [商品名]フィールド
     [価格]フィールド
があるものとします。この[商品マスター]テーブルを用いて[価格順]クエリを作成し[価格順]クエリの[順位]フィールドに、価格の高いもの順に順位を表示します。

DCount関数の引数を以下のように指定し、[価格]フィールド全体で、個々の[価格]より値が大きいものの件数をカウントします。
       フィールド名→商品id
       テーブル名またはクエリ名→商品マスター
       条件→[価格]フィールド全体>個々の[価格]フィールドカウントは、条件を満たしたレコードの商品idの件数で行います。この件数を、順位として[順位]フィールドに表示するのですが、このままでは順位が0からはじまってしまいますので、カウントした件数に1を足したものを順位とします。

●操作手順●
  1. データベースウィンドウでオブジェクト[クエリ]を選択します。
  2. [デザインビューでクエリを作成する]をダブルクリックします。
  3. [テーブルの表示]ダイアログボックスの[テーブル]パネルから、「商品マスター」を選択して[追加(A)]ボタンをクリックします。
  4. [商品マスター]テーブルのフィールドリストが[選択クエリ]ウィンドウに追加されます。
  5. [テーブルの表示]ダイアログボックスの[閉じる(C)]ボタンをクリックします。
  6. [商品マスター]テーブルのフィールドリストで、[商品名]をダブルクリックします。下のデザイングリッドに[商品名]フィールドが追加されます。
  7. [商品マスター]テーブルのフィールドリストで、[価格]をダブルクリックします。下のデザイングリッドに[価格]フィールドが追加されます。
  8. デザイングリッドの[価格]フィールドの右列の[フィールド:]欄に「順位:dcount("商品id","商品マスター","価格>=" & [価格])+1」と入力して[Enter]キーを押します。
  9. [クエリ デザイン]ツールバーの[ビュー]ボタンをクリックします(または、[表示(V)]メニューから[データシート ビュー(S)]コマンドを選択します)。
  10. [商品名]、[価格]、[順位]フィールドが作成され、[順位]フィールドには価格順位が表示されることを確認します。うまく表示されない場合は、デザインビューに切り替えて[選択クエリ]ウィンドウに戻り、もう一度内容を確認してください。
  11. 「価格順」という名前をつけてクエリを保存します。
●補足● 手順(4)で、追加した[価格]フィールドの[並べ替え:]欄を「降順」とすると、価格の高い順にレコードを表示しますので、[順位]フィールドが見やすくなります。 手順(5)で、入力する欄を右クリックして[ズーム(Z)...]を選択すると、[ズーム]ウィンドウが表示されます。[ズーム]ウィンドウは、長い文字列や式を入力するときに便利なウィンドウです。