获取选择\操纵“非连接”关系字段

时间:2017-10-08 06:15:46

标签: sql sql-server

我正在尝试selectmanipulate一个字段,我可能做错了什么。 这是查询:

SELECT DISTINCT Record1ID
    ,Record1IdName
    ,Record2Id
    ,Record2IdName
    ,TmpTable.is_child
    ,TmpTable.is_child_parent
FROM db777..Connection Child
INNER JOIN db777..Contact cont ON Child.Record2Id = cont.ContactId
INNER JOIN db666..idt_v_sales TmpTable ON cont.Id = TmpTable.Id
WHERE (
        Child.Record2RoleId = 'F07533'
        OR Child.Record1RoleId = 'C417DE'
        )
ORDER BY Child.Record2Id;

Connection表有两个重要的列。第一个是Record1Id(父ID),第二个是Record2Id(子ID)。 我已经确定Record2Id将在Join表之间“引导”,但是,当我想拥有正确的数据\操纵字段TmpTable.is_child_parent我的数据时实际上我得到了该字段的错误结果,因为在创建Join(s)时,我的主键是Child的键,并且该字段是parent字段。 那么,我如何解决这个问题,以便使用和获取Parent和Child的数据?

我想要的结果如下:

Record1Id  Record1IdName  Record2Id  Record2IdName  TmpTable.is_child TmpTable.is_parent_child
  123	         A	      111	    DD	       40	              50
  456	         B	      111	    DD	       40	              0

Connection表包含Foloowing列: Record1IdRecord1IdNameRecord2IdRecord2IdName

Contact表包含'ContactId'列,可以是Parent的Id(来自Connection表的Record1Id)或Child的Id(来自连接表的Record2Id)。

TmpTable(idt_v_sales)包含不同类型的Id,除了请求的列之外,它还与Contact表连接:is_childis_parent_child。如上所述,is_child只是孩子可以拥有的integer,而is_parent_child只是父母可以拥有的整数。

0 个答案:

没有答案