Sql Query:返回排除一个值的结果,在同一列中包含另一个值

时间:2014-04-23 20:21:28

标签: sql-server join subquery union

我试图从包含

的几张桌子中拉出来
  1. 唯一PropertyID记录和
  2. ContactRoleID
  3. LocationID
  4. PropertyID是唯一标识符,但可以有多个ContactRoleID

    • ContactRoleID = 3 =已记录的所有者(LLC,壳牌公司等)
    • ContactRoleID = 7 =真正的所有者(LLC背后的实际公司)

    我试图找到一种方法来弄清楚我们应该能够添加PropertyID的{​​{1}}上的真正所有者的位置,因为它们已经与另一个{{1}的记录所有者相关联。 1}}。

    因此,查询会影响(#3-5表示结果列表):

    1. 查找同时包含PropertyID的{​​{1}}的所有LocationID,然后
    2. 查找第一个查询中PropertyID的所有ContactRoleID = 3 AND ContactRoleID = 7,但不是PropertyID
    3. 返回ContactRoleID = 3 ContactRoleID = 7LocationID ContactRoleID = 3 PropertyID
    4. 返回#3
    5. 中的ContactRoleID = 7
    6. 从流程#1(怀疑是真正的所有者)返回与PropertyID匹配的LocationID的{​​{1}}
    7. 返回来自流程#1的两个ContactRoleID = 7的引用ContactRoleID = 3(引用PropertyID
    8. 我尽力而为,但无法弄明白。我已经完成了查询#1,但#2不会工作(它仍然会引入具有ContactRoleID = 7的PropertyID。我想我错过了一个联合,或者可能是一个相关的子查询。任何帮助非常感谢!

      这是我在#2的尝试(甚至没有尝试过去)。

      ContactRoleID

0 个答案:

没有答案