12/18/2019

Access。集計をつかったクエリで、借方貸方の差額は演算でなく合計で設定する【difference】

Access。集計をつかったクエリで、借方貸方の差額は演算でなく合計で設定する

<Access>

Accessで、テーブルにあるフィールド別にフィールド合計を算出したい場合には、クエリで「集計」をつかうことで、算出することができますが、その集計したフィールド同士で、減算しようと、演算フィールドをつくり、集計に、減算なので、「演算」を設定しても算出することができません。

まずは、その原因を確認していきましょう。

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

クエリをつかうことで、管理番号フィールドをグループ化して、「集計」すれば、管理番号ごとの請求額と入金額の合計を算出することができます。

まず、クエリで演算フィールドを作る前まで作成して、確認してみましょう。
今回は、クエリデザインを使います。

グループ化としてまとめる、管理番号フィールドと、それぞれのフィールドの合算値を算出したい、請求額フィールドと入金額フィールドを使用します。

初期設定では、集計するための行が表示されていません。
クエリツールのデザインタブにある、「集計」をクリックして、集計行を表示します。

集計行は、
管理番号フィールドには、「グループ化」
請求額フィールドには、「合計」
入金額フィールドには、「合計」
とそれぞれに設定します。

ここまでの状況を、実行ボタンをクリックして、データシートビューで確認してみましょう。

合計させたフィールドは、それぞれの合算値が算出されています。

請求額と入金額のそれぞれの合計が算出できたので、この2つのフィールドの差額を算出する演算フィールドを作成していきます。

差額: [請求額]-[入金額]という演算フィールドを設定しました。
演算フィールドなので、集計行には、「演算」と設定してみました。

これを実行してみると、エラーが表示されてしまいます。

実は、この集計行の「演算」は関数の時に使うもので、今回のように、演算したい場合は、集計行には、「合計」と設定する必要があります。

演算フィールドなのに、「演算」ではなくて、「合計」というのは、わかりにくいですね。

では、実行して確認してみましょう。

差額を算出することができました。

さて、一度このクエリを閉じて、再度デザインビューで開いてみると、先程作成した演算フィールドが変わっていることに気づきます。

差額: Sum([請求額]-[入金額]) と演算フィールドがわかっています。
しかも、Sum関数。さらに減算でもSum関数を使うといいことも、わかりますね。
さらに、集計行は、Sum関数に変わったことに伴い、「演算」にかわっていますね。

ということで、今回のような借方貸方の差額を算出する場合には、ちょっと注意する必要があります。