即効テクニック |
●概要● ユニオンクエリーを使うと、複数のテーブルやクエリーを縦につなげることができますが、これを利用して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フィールドに揃え、[価格]フィールドと同じ列に[合計値]が表示されるようにしています。 なお、フィールド名は最初に記述されたテーブル(クエリー)のフィールド名になります。