0

Currency CHAR(3)私は:StressValue(FLOAT)ペアのテーブルを持っています。6行あります。

6行目の'Currency'値は、 :ペア'GRP'の2番目のテーブルで指定されている通貨のグループを表します。CurrencyStressValue

'Currency'で2つのテーブルを結合したいのですが、最初のテーブルの5つの行のいずれかに含まれているのと同じ'Currency'値を持つ2番目のテーブルの行を返したくありません。

たとえば、行2にコンボ'GBP':' 0.05'があり、2番目の(つまり'GRP')テーブルに行' GBP':'0.10'がある場合、結果セットに1つの'GBP'行(1つは。)のみを表示する必要があり'0.05'ます。

誰かがSQLServer2008 R2でこれを行うための最良の方法を提案できますか?

編集:

以下は、Dimension1=GroupNameの単純なLEFTJOINの2つのテーブルです。
問題は、-0.04と-0.045の2つの値を持つ「ES」があり、-0.04の値だけを保持したいということです。

ここに画像の説明を入力してください 編集2:

左の表、右の表、および望ましい結果セット:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

GroupName ='PE' AND'MemberName ='ES'の行は、'ES'がすでに左側のテーブルに表示されているため、目的の結果セットから除外されていることに注意してください。

4

1 に答える 1

0

私があなたを正しく理解していると仮定すると:

select * from
Currency as c
left join StressValue as s on c.Diemention1 = s.GroupName AND s.MemberName <> ( 
  SELECT s.MemberName 
  from Currency as c 
  join StressValue as s 
  on c.Diemention1 = s.MemberName)

フィドルを参照

于 2013-01-28T09:45:35.693 に答える