あるテーブル(クエリ)と別のテーブル(クエリ)を比較し、特定の列について「同じ値を持たない」レコードを抽出したいという場合があります。
「同じ値を持つ」レコード抽出するのであればクエリデザインの画面で両方の列を線で結べばいいだけですので簡単ですが、こちらはちょっと面倒ですので、そのような抽出を専門に行うため不一致クエリウィザードというものが用意されています。
ここではその使い方をみてみます。
例として2つのテーブルを用います。
こちらは各社員の情報が記録されている社員テーブルです。
こちらが、社員に対する表彰の内容を記録した表彰テーブルです。
この2つのテーブルを比較し「表彰テーブルに社員コードを持たない社員情報を社員テーブルから抽出」するものとします。つまり、表彰を受けたことがない社員のレコードを抽出することになります。
ウインドウ上部の作成タブからメニュー「クエリウィザード」を選択します。
各種ウィザードの選択ウインドウが現れますので、「不一致クエリ ウィザード」を選択します。
ここから具体的な設定です。
まず、レコードを抽出しようとするテーブルを選択するウインドウです。
今回は「表彰テーブルに社員コードを持たない社員情報を社員テーブルから抽出」しますので、社員テーブルを選択して次に進みます。
次に比較対象となるテーブルを選択します。
ここはもちろん表彰テーブルを選択して次に進みます。
さらに、2つのテーブルを比較する際に用いる列をそれぞれ選択します。
今回は「社員コード」列の値の有無により比較しますので、左右の両方のリストで「社員コード」を選択し、次に進みます。
クエリに表示しようとする社員テーブルの列を選択します。
左側のリストに列名が表示されますので、クエリに表示させようとする列名を選択して「>」をクリックすると列名は右側のリストに移動します。
ここではとりあえずすべての列を選択し、次に進みます。
以上でひとまず終了です。
「完了」をクリックしてデータをみてみます。
抽出結果が表示されます。
狙いどおり、表彰テーブルに社員コードがある社員(社員コード2,4,5,7,12)を除いた社員のデータが抽出されています。