6/23/2022

Access。クエリ。すべてのフィールドを表示した条件付き最大値を手早くつくりたい。【MAX】

Access。クエリ。すべてのフィールドを表示した条件付き最大値を手早くつくりたい。

<Access:DMax>

テーブルからクエリのグループをつかうことで、簡単に、該当するフィールドの最大値を算出することはできるのですが、該当するレコードの全フィールドを表示したい場合、クエリのグループ化では対応することができません。


やりたいことを確認しておきましょう。


店舗名が横浜店で売上高の最大値をすべてのフィールドで表示したいわけです。

次のテーブルがあります。


これをクエリの集計をつかうと、最大値を算出することができます。


ただし、グループ化するために、すべてのフィールドを使うことはできません。


結果、データシートビューで確認すると、店舗名別最大売上高のクエリができた状態です。

 

つくりたいクエリはこれではありません。


では、どのようにしたら、次のようなクエリをつくることができるのでしょうか


今回は、抽出条件にDMax関数をつかうことで、問題は解決します。


クエリデザインで、「T文房具売上」の全てのフィールドをつかって、クエリのフィールドを設定します。


そして、売上高フィールドの抽出条件にDMax関数をつかった設定を入力します。


DMax("売上高","T文房具売上","店舗名='横浜'")


なお、画面の都合上、画像は、売上高フィールドのみを表示していますが、左側に、NO・店舗名・商品名のフィールドを設定しております。


これで、横浜店で売上高の最大値のデータをすべてのフィールドで表示することができます。


DMax関数の引数は、

DMax(フィールド名,テーブル名,条件)です。


この数式のポイントは、「"店舗名='横浜'"」の条件です。


「”(ダブルコーテーション)」で条件全体を囲う必要があるのですが、条件の横浜には、「’(シングルコーテーション)」で囲う必要があります。

「’(シングルコーテーション)」を「”(ダブルコーテーション)」に間違えてしまうと、エラーが表示されますので、入力する時に注意が必要です。