ユニオン クエリを使用して、 複数のテーブルのフィールドのデータを結合
ここでは、同じデザイン (ファイルレイアウト) の複数のファイルを結合する方法を取り上げます。
例えば、A工場の取引先リストと、B工場の取引先リストを合体して、統合取引先リストを作ろうとしているときなどです。
注:
UNION は、レコード(行)を単純に合体するだけなので、例えば、A工場とB工場の取引先に、キーが共通のものがあり、このキーの重複は排除したい場合などは、
ベースとなるデータベースに、追加するデータベースを、[追加クエリ ] を使って、追加して統合します。重複レコードの削除 の項目を参照下さい。
ユニオン クエリは、複数のテーブルやクエリの対応するフィールドを 1 つのフィールドに結合します。ユニオン クエリを実行すると、含まれているテーブルやクエリの対応するフィールドからのレコードが返されます。
データベース ウィンドウで [オブジェクト] の (クエリ) をクリックし、データベース ウィンドウのツールバーの [新規作成] をクリックします。
[クエリの新規作成] ダイアログ ボックスの [デザイン ビュー] をクリックし、[OK] をクリックします。
テーブルやクエリを追加せずに、[テーブルの表示] ダイアログ ボックスの [閉じる] をクリックします。
[クエリ] メニューの [SQL] をポイントし、[ユニオン] をクリックします。
と、「ヘルプ」にありますが、そうすると、全ての SQLコード を手打ちしなければならないので、私は以下を推奨します。
一つ目のテーブルやクエリを追加して、[テーブルの表示] ダイアログ ボックスの [閉じる] をクリックします。(追加テーブルのフィールド名が異なる場合は、追加するテーブルも追加しておきます。)
テーブルの「*」をダブルクリックして、デザイン・グッリドにフィールドを追加します。表示するフィールドを限定する場合は、必要なフィールドをダブルクリック(あるいはドラッグ・アンド・ドロップ)して、デザイン・グッリドのセルに追加します。
「表示」→「SQLビュー」にします。
SQLビューで表示された、SELECT 〜の「; 」より前までを、コピーして、「; 」の前に、挿入して貼り付けます。そして、UNION を手入力 して、追加テーブル名を変更 します。こうすれば、下記の SQLコード を、簡単に作成できます。
通常は、一つ目のテーブルと、追加テーブルで、重複するレコード(行)が有った場合は、重複するレコードを返さないようにするので、上の図のように、SQL SELECT ステートメントを UNION 演算子と組み合わせて入力します。
もし、重複するレコード(行)も返すようにするときは、SQL SELECT ステートメントを UNION ALL 演算子と組み合わせて記述します。つまり、UNION の後ろに ALL を追加します。
メモ 各 SELECT ステートメント は、同じ順で同数のフィールドを返す必要があります。対応するフィールドは、互換性のあるデータ型を持っていなければなりません。ただし、数値型フィールドとテキスト型フィールドは、対応するフィールドとして使用できます。
UNION 操作
ユニオン クエリに並べ替えを指定する場合は、最後の SELECT ステートメントの後に ORDER BY 句 を 1 つ追加します。ORDER BY 句で並べ替えるフィールド名を指定します。このフィールド名は最初の SELECT ステートメントで指定されているものでなければなりません。
クエリの結果を表示するには、ツールバーの (ビュー) をクリックします。
クエリーを名前を付けて保存すれば、UNION のアイコンができます。
注意 ユニオン クエリを選択クエリなどのほかの種類のクエリに変換した場合は、入力した SQL ステートメントは失われます。
メモ
ノースウィンド データベースの [得意先と仕入先] クエリはユニオン クエリの例です。このクエリを表示するには、[Office] フォルダの [Samples] サブフォルダにあるノースウィンド データベース (Northwind.mdb) を開き、[得意先と仕入先] クエリをデザイン ビューで開きます。ノースウィンド データベースの開き方については、 をクリックしてください。
ユニオン クエリは、フィールド名として、最初のテーブルまたは SELECT ステートメントのフィールド名を変更して使用します。結果のフィールド名を変更する場合は、AS 句を使用してフィールドの別名を作成します。
★ユニオン クエリの例
Excelではコピー貼付けした後、フィルタで削除
Excelの場合は、コピー・貼り付けで、二つのテーブルを、一つのテーブルにまとめます。必要によって、並び替えをします。
ユニークなキーの重複が有って、キーの重複を排除したい場合は、集計を使って重複部分を削除 します。