本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC2] 上位15レコードのみを抽出する方法

文書番号: 402091

最終更新日: 1998/02/09


この資料は以下の製品について記述したものです。

この記事は、以前は次の ID で公開されていました: JP402091

概要

クエリーで、指定したフィールドの最大値、最少値、上位 15 や下位 10 など特定の複数レコードを抽出することができます。

手順

ここでは、Access 2.0 に添付されているサンプル データベース NWIND.MDB の[商品] テーブルを使用して、 [単価] × [在庫] で求められる値を降順で並べ替えることによって、上位 15 位までのレコードを抽出するクエリーを作成しています。
  1. データベース ウィンドウ上で、NWIND.MDB の [商品] テーブルを選択し、ツール バーから <クエリー作成> ボタンを押します。
  2. クエリー作成画面が表示されます。まず、[表示]-[プロパティ] コマンドを選択するか、ツールバーから <プロパティ> ボタンを押して、クエリー プロパティ シートを表示します。プロパティー シートの設定と QBE グリッドの設定は次のとおりです。
    [GRAPHIC: ]
  3. メニューから [クエリー]-[実行] コマンドを選択するか、ツール バーから<実行> ボタンを押して、クエリーを実行します。
    [GRAPHIC: ]

■解 説

このサンプルでは、[トップ値] プロパティの設定値と同数のデータが抽出されましたが常に設定値と同数のデータが返されるとは限りません。
[トップ値] プロパティに入力した値内に同一のデータが複数ある場合は、すべてが抽出されます。例えば、 50, 75, 50, 300, 50, 30 の値をもつフィールドに対し、上位 3 のデータを求めるように設定すると、 300, 75, 50, 50, 50 の 5 つのデータが抽出されます。 [固有の値] プロパティを "はい" にすれば、複数の同一のデータは省かれ300, 75, 50 が抽出されます。また、複数のフィールドを QBE グリッドに設定した場合、抽出するキーとなるフィールドは、クエリーのデザインで一番左端になります。
なお、直接 SQL ビュー上に、SQL ステートメントを入力してクエリー デザインを設定することもできます。設定する SQL 文は次の通りです。
  SELECT DISTINCT TOP 15 [単価]*[在庫] AS 上位 15 在庫額, 商品.商品名
  FROM 商品
  ORDER BY [単価]*[在庫] DESC;

■ヒント

求める上位数がパーセントで表示するには、TOP n 句の変わりに TOP n PACENT 句を設定します。自動的に作成されるフィールド名には、[商品].[商品名] というように、テーブル名が前につきますが省略可能です。ORDER BY 句の最後の予約語 DESC は、[並び替え] 行の [降順] を表します。昇順の場合は、予約語 ASC を使用してください。

Keywords: KBHOWTO KB402091
Technology: kbAccessSearch

inserted by FC2 system