PR

わかる!Access学習14 レコードを統合するユニオンクエリの作成方法

Access学習

データベースの運用を続ける中では、似たようなフィールドのテーブルを構築し、管理するケースがあります。選択クエリでは、複数のテーブルやクエリを結合して「列=フィールド」を繋げていき、これらを一覧表示することができますが、一方で「行=レコード」を繋げる、つまり、2つ以上のテーブルやクエリを用意し、レコードを一覧で表示させるにはどうすれば良いでしょうか。

こういった場合に、「ユニオンクエリ」を用いることができます。そこで今回は、ユニオンクエリについて説明をし、その後作成方法を紹介します。

スポンサーリンク

ユニオンクエリの考え方

選択クエリとユニオンクエリで表示される結果のイメージは、図1に示すとおりです。

図1 選択クエリとユニオンクエリで表示される結果のイメージ

図で示すように複数のテーブルを足してレコードを一覧で表示する機能がユニオンクエリとなります。

それでは、ユニオンクエリの作成例として、「T_従業員1」テーブルと「T_従業員2」テーブルを一覧で表示する方法を紹介します。

サンプルデータ

ユニオンクエリの作成例を確認するため、「T_従業員1」と「T_従業員2」テーブルを以下に示すとおり作成します。

表1 各テーブルのフィールド名とデータ型

フィールド名 データ型
氏名 短いテキスト
部署コード 短いテキスト
年齢 数値型
電話番号 短いテキスト
出身地 短いテキスト

 

表2 「T_従業員1」テーブルのサンプルデータ

氏名 部署コード 年齢 電話番号 出身地
山田 太郎 A111 35 080-1234-5678 東京都
佐藤 花子 A101 16 090-9876-5432 北海道
鈴木 次郎 B102 40 080-1928-3764 愛知県

 

表3 「T_従業員2」テーブルのサンプルデータ

氏名 部署コード 年齢 電話番号 出身地
一木 英恵 A101 22 090-9876-9999 青森県
中山 一郎 A101 42 080-1234-5678 東京都
上島 達夫 B102 25 090-2586-2262 三重県

 

ユニオンクエリの作成方法

サンプルデータが用意できたので、Accessでユニオンクエリを作成するための注意点を先に示します。

1つ目は、クエリデザインの画面でユニオンクエリを作成することはできず、SQLビューでの作成が必須という点です。

2つ目は、ユニオンクエリを作成するためにSQL文を記載することになりますが、「UNION」句を用いるか「UNION ALL」句を用いるかで結果に違いが表れるという点です。前者は重複行を除外しますが、後者は重複行を許容します。

3つ目は、特に重要で各選択クエリのフィールド数は同じでなければならないという点です。選択クエリAではフィールド数が5つ、選択クエリBではフィールド数が6つ設定すると、エラーが発生しますので注意してください。

以上の点を踏まえてユニオンクエリを作成していきますが、まずは表2に示す「T_従業員1」テーブルの全てのフィールドを抽出条件なしで表示するSQL文は次のようになります。

SELECT T_従業員1.氏名, T_従業員1.部署コード, T_従業員1.年齢, T_従業員1.電話番号, T_従業員1.出身地 FROM T_従業員1;

同様に、表3に示す「T_従業員2」テーブルのレコードを全て表示させるためのSQL文は次のようになります。

SELECT T_従業員2.氏名, T_従業員2.部署コード, T_従業員2.年齢, T_従業員2.電話番号, T_従業員2.出身地 FROM T_従業員2;

図2に示すように、「作成」タブの「クエリデザイン」アイコンをクリックします。続いて表示される「テーブルの表示」画面では何も選択せずに「閉じる」をクリックします。

図2 SQLビューを開くまでの手順①

これによりクエリデザイン画面には何も表示されない状態となりますので、図3に示すように「クエリツール」の「SQLビュー」を選択し、画面を切り替えます。

図3 SQLビューを開くまでの手順②

「SQLビュー」の画面が開いた後、図4に示すように以下のSQL文を入力します。

SELECT T_従業員1.氏名, T_従業員1.部署コード, T_従業員1.年齢, T_従業員1.電話番号, T_従業員1.出身地 FROM T_従業員1
UNION
SELECT T_従業員2.氏名, T_従業員2.部署コード, T_従業員2.年齢, T_従業員2.電話番号, T_従業員2.出身地 FROM T_従業員2;

この際、「FROM T_従業員」の後ろはセミコロン(;)ではなく半角スペースを入力します。また、「UNION」の後ろも半角スペースが必要です。

図4 SQLビューに入力するSQL文

ユニオンクエリによる表示結果の確認

SQLビューにSQL文を入力した後、「クエリツール」の「データシートビュー」をクリックすると、ユニオンクエリの結果が図5に示すように表示されます。

図5 ユニオンクエリによる一覧表示の結果

以上のように、複数の選択クエリのデータを一覧で表示させる際にはユニオンクエリを活用することができます。

まとめ

今回は、複数のテーブルを足してレコードを一覧で表示するユニオンクエリについて紹介しました。サンプルの場合、全てのフィールドを選択しましたが必要なフィールドだけを選択して表示することもできます。また、定期的に複数のテーブル情報を一覧表示する必要がある場合に、一度ユニオンクエリを作成しておけば、それ以降はユニオンクエリを実行するだけで必要なデータ閲覧をすることができるようになります。

このように、ユニオンクエリを活用することで効率的なデータ閲覧ができ、業務効率の改善が期待できます。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。

コメント

タイトルとURLをコピーしました