2 つの別々のデータ セットをマージしようとしています。2 つのデータ セット間で、一部のエントリが重複している可能性があります。
表1:
Common Field A | Field 1 | Field 2
---------------------------------
a a1 a2
b b1 b2
表 2:
Common Field B | Field 3 | Field 4
---------------------------------
c c1 c2
a a1 a2
取得する共通フィールドでユニオン クエリを実行しました。
Common Field
---------------
a
b
c
今私は2つの結合をしました。ユニオン クエリとテーブル 1 の間の 1 つの結合、およびユニオン クエリとテーブル 2 の間の 1 つの結合。 基本的に、各結合は、ユニオン クエリのすべてのエントリが一覧表示され、テーブルの共通フィールドが一致する行が表示されるように行われます。ユニオン クエリ エントリが一覧表示されます。これを行った後、すべての列を含むクエリを作成しました (上記の 2 つの結合に注意してください)。これが私が期待したものです:
Common Field | Common Field A | Common Field B | Field 1 | Field 2 | Field 3 | Field 4
------------------------------------------------------------------------------------------
a a a a1 a2 a1 a2
b b b1 b2
c c c1 c2
ここに私が得ているものがあります:
Common Field | Common Field A | Common Field B | Field 1 | Field 2 | Field 3 | Field 4
------------------------------------------------------------------------------------------
a a a a1 a2 a1 a2
b b #Error b1 b2
c #Error c c1 c2
#Error サインが表示される理由がわかりません。共通フィールド エントリに対してのみ #Error サインが表示される理由と同じくらい混乱しています。どちらかといえば、少なくとも次のように取得することを期待していました。
Common Field | Common Field A | Common Field B | Field 1 | Field 2 | Field 3 | Field 4
------------------------------------------------------------------------------------------
a a a a1 a2 a1 a2
b b #Error b1 b2 #Error #Error
c #Error c #Error #Error c1 c2
それらを取り除く方法はありますか?IIF(IsError(....)) を使用してみましたが、うまくいきませんでした。人々が #Error メッセージを取り除こうとしたが、解決できなかったオンラインの試みをいくつか見つけました。問題の根本にたどり着いたほうがよいことはわかっていますが、この時点では #Error メッセージ自体を取り除くだけで問題ありません。これにどのようにアプローチすべきかについてのアイデアはありますか?
編集: SQL の例を次に示します。
SELECT qryUnion.CommonField, tbl1.CommonFieldA, tbl2.CommonFieldB, tbl1.Field1, tbl1.Field2, tbl2.Field3, tbl2.Field4
FROM tbl2 RIGHT JOIN ( tbl1 RIGHT JOIN qryUnion ON tbl1.CommonFieldA = qryUnion.CommonField) ON tbl2.CommonFieldB = qryUnion.CommonField;
EDIT2:重要な場合の結合のSQLは次のとおりです。
SELECT tbl1.CommonFieldA FROM tbl1 UNION tbl2.CommonFieldB FROM tbl2