●概要●
ユニオンクエリーを使うと、複数のテーブルやクエリーを縦につなげることができますが、これを利用して1テーブルの全レコードと、その最後に合計行を1行追加するクエリーを作成してみます。
●手順●
(1)以下の定義で「t_価格表」テーブル を作成します。
[フィールド名] [データ型]
部品ID 数値型
名称 テキスト型
価格 数値型
(2)「t_価格表」テーブル に、以下のようなサンプルデータを入力します。
[部品ID] [名称] [価格]
1 PC本体 98000
2 プリンタ 29800
3 TA 14800
(3)クエリーを新規作成し、メニューの[表示]-[SQLビュー]で、以下のSQL文を手入力します。
TABLE t_価格表
UNION ALL
SELECT Null, "合計", Sum(t_価格表.価格)
FROM t_価格表;
(4)クエリーを保存し、データシートビューで開くと、以下のように最終行に価格合計が追加された形で表示されます。
[部品ID] [名称] [価格]
1 PC本体 98000
2 プリンタ 29800
3 TA 14800
合計 142600
●備考●
通常、集計値は各フォームのフォームフッターやレポートのグループフッターで表示させればよいので、ユニオンクエリーを使う必要はありませんが、クエリーの結果をそのまま(Excelシート等に)エクスポートする処理等で、この方法は功を奏します。
UNION(ALL)述語の前のテーブル(クエリー)と後のテーブル(クエリー)はフィールド数を揃えておく必要があります。サンプルではt_価格表テーブルが3フィールドあるので、UNION ALLの後も、SELECT ・・,・・,・・ と3フィールドに揃え、[価格]フィールドと同じ列に[合計値]が表示されるようにしています。
なお、フィールド名は最初に記述されたテーブル(クエリー)のフィールド名になります。