文書番号: 402091
最終更新日: 1998/02/09
この資料は以下の製品について記述したものです。
Microsoft Access(R) Relational Database Management System for Windows(R)Version 2.0 (以下 Access 2.0) この記事は、以前は次の ID で公開されていました: JP402091
概要
クエリーで、指定したフィールドの最大値、最少値、上位 15 や下位 10 など特定の複数レコードを抽出することができます。
手順
ここでは、Access 2.0 に添付されているサンプル データベース NWIND.MDB の[商品] テーブルを使用して、 [単価] × [在庫] で求められる値を降順で並べ替えることによって、上位 15 位までのレコードを抽出するクエリーを作成しています。
データベース ウィンドウ上で、NWIND.MDB の [商品] テーブルを選択し、ツール バーから <クエリー作成> ボタンを押します。
クエリー作成画面が表示されます。まず、[表示]-[プロパティ] コマンドを選択するか、ツールバーから <プロパティ> ボタンを押して、クエリー プロパティ シートを表示します。プロパティー シートの設定と QBE グリッドの設定は次のとおりです。
メニューから [クエリー]-[実行] コマンドを選択するか、ツール バーから<実行> ボタンを押して、クエリーを実行します。
■解 説
このサンプルでは、[トップ値] プロパティの設定値と同数のデータが抽出されましたが常に設定値と同数のデータが返されるとは限りません。
[トップ値] プロパティに入力した値内に同一のデータが複数ある場合は、すべてが抽出されます。例えば、 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