不一致クエリウィザードの利用

 あるテーブル(クエリ)と別のテーブル(クエリ)を比較し、特定の列について「同じ値を持たない」レコードを抽出したいという場合があります。
 「同じ値を持つ」レコード抽出するのであればクエリデザインの画面で両方の列を線で結べばいいだけですので簡単ですが、こちらはちょっと面倒ですので、そのような抽出を専門に行うため不一致クエリウィザードというものが用意されています。
 ここではその使い方をみてみます。

f:id:accs2014:20180603121052p:plain:right:w400

 例として2つのテーブルを用います。
 こちらは各社員の情報が記録されている社員テーブルです。


f:id:accs2014:20180603121049p:plain:right:w500

 こちらが、社員に対する表彰の内容を記録した表彰テーブルです。
 この2つのテーブルを比較し「表彰テーブルに社員コードを持たない社員情報を社員テーブルから抽出」するものとします。つまり、表彰を受けたことがない社員のレコードを抽出することになります。


f:id:accs2014:20180603121046p:plain:right:w400

 ウインドウ上部の作成タブからメニュー「クエリウィザード」を選択します。


f:id:accs2014:20180603121043p:plain:right:w400

 各種ウィザードの選択ウインドウが現れますので、「不一致クエリ ウィザード」を選択します。


f:id:accs2014:20180603121040p:plain:right:w500

 ここから具体的な設定です。
 まず、レコードを抽出しようとするテーブルを選択するウインドウです。
 今回は「表彰テーブルに社員コードを持たない社員情報を社員テーブルから抽出」しますので、社員テーブルを選択して次に進みます。


f:id:accs2014:20180603121135p:plain:right:w500

 次に比較対象となるテーブルを選択します。
 ここはもちろん表彰テーブルを選択して次に進みます。


f:id:accs2014:20180603121132p:plain:right:w500

 さらに、2つのテーブルを比較する際に用いる列をそれぞれ選択します。
 今回は「社員コード」列の値の有無により比較しますので、左右の両方のリストで「社員コード」を選択し、次に進みます。


f:id:accs2014:20180603121128p:plain:right:w500

 クエリに表示しようとする社員テーブルの列を選択します。
 左側のリストに列名が表示されますので、「>」をクリックすると列名は右側のリストに移動します。それらの列がクエリに表示されます。
 ここではとりあえずすべての列を選択し、次に進みます。


f:id:accs2014:20180603121125p:plain:right:w500

 以上でひとまず終了です。
 「完了」をクリックしてデータをみてみます。


f:id:accs2014:20180603121121p:plain:right:w300

 抽出結果が表示されます。
 狙いどおり、表彰テーブルに社員コードがある社員(社員コード2,4,5,7,12)を除いた社員のデータが抽出されています。