基本的に次のようなクエリを実行します。
select a, b, c
from tab
where tab.state = 'A'
minus
select a, b, c
from tab
where tab.state = 'B'
この例でaは、、、bおよびcがこのテーブルのキーフィールドです。stateもキーの一部であり、状態Bではなく状態Aにレコードがある状況を見つけようとしています。レポートしたい別のフィールド(キーにはない)がありますvalue、、これは、異なる州の同じレコードでは異なる場合があります。例:
abc状態値 --------------------- 1 1 1 A 12 1 2 2 A 1002 1 3 9 A 43 1 1 1 B 17.34 1 2 2 B 1002
この場合、1,3,9状態がAであるキーを持つ行に関心があります。列の値も取得したいのですが、value試してみると次のようになります。
select a, b, c, value
from tab
where tab.state = 'A'
minus
select a, b, c, value
from tab
where tab.state = 'B'
返されるのは2行です。
abc値 -------------------------------- 1 1 1 12 1 3 9 43
value基本的に、結果セットに入れたいのですが、には参加しませんminus。ここで明らかな何かが欠けているような気がしますが、たぶん私は疲れすぎてそれを手に入れることができません...;)