Accessでお仕事 クエリで演算を実行する方法

クエリで演算を実行する方法

クエリではいろいろな種類の演算を実行することができます。たとえば、1 つのフィールドの値の合計や平均を計算したり、2 つのフィールドの値を掛け合わせたり、現在の日付から 3 か月後の日付を計算したりできます。

フィールドの演算の結果を表示しても、演算の結果は基になっているテーブルに実際に保存されるわけではありません。その代わり、クエリを実行するたびに演算の結果が返されるので、結果は常にデータベースの最新データに基づいています。そのため、演算の結果を手動で更新することはできません。

クエリの演算結果にもとづいて、テーブル更新する方法は、下記を参照下さい。
更新クエリを使ってグループとしてのレコード群を変更する

フィールドの演算の結果を表示するには、Access で定義されている演算や、ユーザーが定義するカスタム演算を使用できます。レコード グループやすべてのレコードに対して合計、平均、最小、最大、カウント、標準偏差、または分散を計算する場合は、"集計" と呼ばれる定義済みの演算を使用します。計算する各フィールドに対していずれかの集計演算を選択します。

クエリで表示する演算の結果

選択クエリ ウィザードを使用して、一部の集計演算を計算用に設定できます。または、クエリのデザイン グリッドの [集計] 行を使用して、すべての集計演算を計算用に設定できます。その場合には、フィールドに対して実行する演算の集計関数を選択します。

クエリのデザイン グリッドでは、集計を行うグループ、集計の対象となるレコード、または演算後に表示される結果を制限するための抽出条件を指定することもできます。

カスタム演算では、1 つまたは複数のフィールドのデータを使用して、各レコードに対して数値、日付、およびテキストの演算を実行することができます。カスタム演算を使用すると、あるフィールドの値に特定の数を掛けたり、2つの日付フィールドの差を調べたり、テキスト型フィールドの複数の値を結合したり、サブクエリを作成することができます。デザイン グリッドの [集計] 行のオプションを設定して、レコード グループに対する演算を実行し、演算フィールドで合計、平均、カウント、またはその他の集計を行うことができます。

カスタム演算の場合は、デザイン グリッドで演算フィールドで直接設定します。クエリのデザイン グリッドの空の [フィールド] セルに式を入力して、演算フィールドを作成します。

クエリのデザイン グリッドの演算フィールド

式は、Sum([在庫]+[発注済]) のように、複数の演算で構成することができます。演算フィールドに抽出条件を指定して、表示する演算結果を制限することもできます。

式の使用例

 事例の、Orderテーブルも、合計金額が無いので、計算してみましょう。

 まず、品目別金額を計算します。
 単純に、金額1:[単価]*[数量] とした場合と、データ型変換関数を使って、金額2:CCur([単価]*[数量]) とした場合の違いを比較してみます。下の画面の、見てくれ(・・・・) に注意して下さい。

 演算式は、「式ビルダ」を使うと、比較的容易に作成できます。



 次は、受注vの、合計金額を出してみましょう。ツールバーの「 (集計) 」ボタンを押して へこませて(・・・・・)、グループ操作できるようにした上で、計算方法を指定します。
 後で利用するため、「合計金額」という名前で、クエリーを保存しておきます。
 SQLビューでは、下記のようになります。
SELECT Order.受注コード, Sum(CCur([単価]*[数量])) AS 金額2
FROM [Order]
GROUP BY Order.受注コード;

フィールドに演算結果を表示せず、その代わり、演算結果を抽出条件として使用して、クエリが選択するレコードを決定したり、アクションを実行するレコードを決定することもできます。たとえば、[抽出条件] 行に次の式を指定すると、クエリは、[締切日] フィールドの値が今日の日付から 3 か月後までのレコードのみを返します。

レコードを選択する抽出条件を定義する演算

演算を使用して、更新クエリでデータを更新することもできます。たとえば、[レコードの更新] セルに次の式を入力すると、[単価] フィールドの値はすべて 5% ずつ増加します。

データを更新する演算



このページのトップに戻る↑ 次の項目を見る↓ Accessでお仕事 目次に戻る

ホームページのトップに戻る