このようなクエリが可能かどうかはわかりません。いくつかの異なるクエリを試しましたが、目的の出力を返すものはありません。ここでは要件です:行間の条件に基づいて行を返す
私は2つのテーブルを持っている:
Header:
Id(PK) Name
1 A
2 B
3 C
Detail:
Id(FK) Name Min Max
1 X1 1 3
1 X2 5 5
1 X3 8 9
2 X1 11 11
2 X2 13 13
2 X3 15 18
3 X1 2 2
3 X2 1 6
3 X3 9 11
私は、次の入力を与えられたクエリが必要になります。
@X1 = 2
@X2 = 5
@X3 = 9
万一出力:以来
Id(PK) Name
1 A
3 C
提供された値は、詳細テーブルの最小値と最大値の間にあります。
また、0の入力は、例えばので、何の範囲を示していない:
@X1=0
@X2=0
@X3=16
万一出力:
Id(PK) Name
2 B
X1との@ X2 @ 0であり、いずれかの間で該当しないにもかかわらず、ここで0は「すべてが許容できる」ことを意味します。 @ X3も0であれば、すべてのレコードが範囲内に入るため、すべてのヘッダID1,2,3が出力されていました。
私はこれを一時テーブルとストアドプロシージャを使用して実行することも、Javaで処理することもできます。このヘルプは大幅に
を試してみることができます。実際に使用しているデータベースのタグを追加してください。 –
3つの値はすべて、与えられたIdの最小値と最大値の範囲内になければなりませんか? –
@TimBiegeleisen:はい、3つの値はすべて範囲の間にある必要があります。最初の例を見てください。データセットをよりよく反映するように更新しました –