| 金額がTOP5のデータを顧客コード順に並べ替える | クエリ | ||
ある販売実績のテーブルから顧客ごとの販売金額を集計し、それが大きい順にトップ5を抽出、さらにそれを顧客コード順に並べ替えて出力するクエリの作り方です。 まず、ベースとなるクエリを作ります。 ![]() ![]() ![]() ここでは、顧客コードと顧客名でグループ化、レコードごとに[単価]*[数量]を計算し、グループごとの金額の”合計”を求めます。 さらに、金額の大きい順にトップ値を取るので、その演算フィールドに”降順”を指定します。 そして、トップ5を抽出するため、プロパティシートの「トップ値」プロパティ欄に「5」を指定します。 しかしこの状態では金額の降順が反映され、顧客コード順にはなりません。そこでここから、画面をクエリの”SQL ビュー”に切り替えて、SQL文を直接編集していきます。 具体的には、上記で生成されたSQL文全体を”サブクエリ”化し、そこから取得されたレコードが今度は顧客コードの”昇順”で返されるようにします。 ■変更前のSQL文 SELECT TOP 5 tbl販売実績.顧客コード, tbl販売実績.顧客名, Sum([単価] * [数量]) AS 金額 FROM tbl販売実績 GROUP BY tbl販売実績.顧客コード, tbl販売実績.顧客名 ORDER BY Sum([単価] * [数量]) DESC; ■変更後のSQL文 下記2ケ所を手入力で編集します。その間のサブクエリ化された部分は元のSQL文のままです。 SELECT * FROM ( ← この部分を追加 SELECT TOP 5 tbl販売実績.顧客コード, tbl販売実績.顧客名, Sum([単価] * [数量]) AS 金額 FROM tbl販売実績 GROUP BY tbl販売実績.顧客コード, tbl販売実績.顧客名 ORDER BY Sum([単価] * [数量]) DESC ) ORDER BY 顧客コード ←← この部分を追加 ![]() ![]() ![]() |
|||
|
|
|||
| Copyright © T'sWare All rights reserved |