将行与几个约束组合在一起

时间:2016-04-22 14:26:39

标签: sql sql-server-2014

我的目标是将联合名称type 1 (Ex.1)与其主帐户(Ex.2)合并。这应该针对每个份额进行。 我应该创建一个临时表来合并它们吗?我正在使用SQL Server 2014

Ex.1 Ex.2

2 个答案:

答案 0 :(得分:0)

这样的事情:

select t1.account,
       t1.primename,
       t2.primename,
       t1.shareid,
       t1.sharedesc
from table t1
left join table t2 on t1.account = t2.account and 
                      t1.shareid = t2.shareid and 
                      t1.nametype = 0 and 
                      t2.nametype = 1
where t1.nametype = 0

答案 1 :(得分:0)

要获取数据,您需要一个与此类似的查询。不过,我猜你桌子上的钥匙。

SELECT 
    Ex1.*, Ex2.JointName
FROM
    Ex1 LEFT JOIN Ex2 ON Ex1.Account = Ex2.Account 
        AND Ex1.ShareDesc = Ex2.ShareDesc 
        AND Ex1.ShareID = Ex2.ShareID 
        AND Ex1.NameDesc = 'Joint'

这将返回您可以在需要的地方使用的结果集。你可以将它包装在一个视图中,如果需要的话,它将像一个表一样,并且始终是最新的。