我有两个表 1)客户表2)帐户表。我想查看哪些帐户是主要帐户,哪些是次要帐户。
在一个表中,我有accountRowId
。在另一个表格中,我有PrimaryAccountRowId
和SecondaryAccountRowId
以及“ AccountNumber”。
对于我的输出,我想将所有AccountNumbers
放在一列中,并将所有 AccountRelationship(主要或次要) 放在每个{{ 1}}。
为了加入表格,对于AccountNumber
,我将在PrimaryAccounts
上加入AccountRowId
;对于次要帐户,我将只使用触发器而不是拥有PrimaryAccountRowId
是primaryAccountRowId
。
我的帐户表:
SecondaryAccountRowId
客户表:
AccountRowId = 256073
AccountRowId = 342300
我想看到桌子的样子
PrimaryAccountRowId = 256073
SecondaryAccountRowId = 342300
AccountNumber = 8003564
AccountNumber = 2034666
请提供一些有关如何实现这些结果的有用逻辑/代码。
在OP的注释中,这是表格结构。
AccoundNumber AccountRelationship
8003564 Primary
2034666 Secondary
答案 0 :(得分:0)
我仍然在这里猜测。您需要提供表结构,样本数据和所需的输出,以使人们可以轻松地为您提供帮助。遵循这些原则。
declare @Customer table
(
AccountNumber Varchar(50)
, PrimaryAccountRowId Varchar(15)
, SecondaryAccountRowId Varchar(15)
)
insert @Customer values
('8003564', '256073', null)
, ('2034666', null, '342300')
declare @Account table
(
AccountRowid Varchar(15)
)
INSERT @Account values
('256073'), ('342300')
现在,我们可以处理一些表和数据,这只是条件聚合的一种情况。据我所知,这应该返回您要查找的数据。
select c.AccountNumber
, AccountRelationship = max(case when p.AccountRowId is not null then 'Primary' when c.SecondaryAccountRowId is not null then 'Secondary' end)
from @Customer c
left join @Account p on p.AccountRowid = c.PrimaryAccountRowId
left join @Account s on s.AccountRowid = c.SecondaryAccountRowId
group by c.AccountNumber
order by AccountRelationship