0

我有一张表Currency CHAR(3):StressValue(FLOAT)对。它有 6 行。

第 6 行的'Currency'值代表在第二个:对'GRP'表中指定的一组货币。CurrencyStressValue

我想在“货币”上加入两个表,但我不想返回第二个表中的那些行,这些行在第一个表的 5 行中的任何一行中都包含相同的“货币”值。

例如,如果第 2 行具有组合'GBP': '0.05' 并且第二个(即'GRP')表具有 'GBP' 行:'0.10'那么我希望结果集仅显示'GBP'一行 - 即'0.05'

请问,有人可以建议在 SQL Server 2008 R2 中执行此操作的最佳方法吗?

编辑:

下面是 Dimension1=GroupName 的简单 LEFT JOIN 中的两个表。
问题是我有两个值的“ES”:-0.04 和 -0.045,我只想保留 -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 回答