基本的に次のようなクエリを実行します。
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
。ここで明らかな何かが欠けているような気がしますが、たぶん私は疲れすぎてそれを手に入れることができません...;)