私はこの2つのテーブルを持っています:
表A
IDタイプ日付日付評価 1M2010年1月1日2011年1月1日A 1M2010年1月3日2011年1月4日B 2 A 7/2/2010 1/31/2015 C 3M2011年3月1日2012年1月20日B 4A2011年3月1日2012年1月20日B 5 M 3/1/2009 3/1/2009 F 6 M 2006/12/31 12/31/9999 A 7 A2006年1月1日9999年12月31日B
表B
IDタイプ日付日付評価 1M2010年1月1日2011年1月1日A 2 A 7/2/2010 1/31/2015 C 2A2010年9月2日2015年1月31日C 3M2011年3月1日2012年1月20日B 4A2011年3月1日2012年1月20日C 6 M 2006/12/31 2015/12/31 A 7 A 2/1/2006 12/31/9999 B 8M2010年1月2日2012年1月2日
テーブルAからテーブルBを引いたものを実行すると、次の結果が得られます。
IDタイプ日付日付評価 1M2010年1月3日2011年1月4日B 4A2011年3月1日2012年1月20日B 5 M 3/1/2009 3/1/2009 F 6 M 2006/12/31 12/31/9999 A 7 A2006年1月1日9999年12月31日B
A.idがB.idにない場合はすでに特定しましたが、他の列で異なるかどうかを確認するにはどうすればよいですか?
スキーマ上に何も作成することは許可されていないため、クエリを使用して作成する必要があります。
これまでのところ、これは私が持っているものですが、それは私に正しくないデータを与えます。
with aminusb as
(
select
*
from A
minus
select
*
from B
)
select
diff.*
from
aminusb diff
,B
where
diff.id = B.id
and
diff.start_date = B.start_date
and
diff.end_date = B.end_date
and
diff.rating <> B.rating
どうすればさまざまなシナリオを取得できるか知っていますか?
- すべてが等しいとき、しかし、評価。
- すべてが等しいが、終了日。
- 何も等しくない場合、それは同じIDを持ちます。
人々が詳細を確認できるように、すべてのシナリオを満たすレコードのリストを取得する必要があります。
ありがとう。