从与同一表格中的另一个值匹配的行中选择一个值

时间:2018-10-17 05:23:56

标签: sql sql-server

这是我的问题:

我有下表(被截断了)

ID  CustomerNumber      ResellerID
1   12          NULL
2   56          1

作为较大查询的一部分-我正在这样做:

select customernumber,
case when ResellerID = id then customernumber end as 'Parent Account'
from table1

我要获取的是具有resellerID的行,将其与ID表匹配并输出customernumber,以便结果如下所示:

CustomerNumber Parent Account
12             NULL
56             12

而且我无法使查询正常运行-我尝试过运行外部左联接,但我只是获得NULL值-因此我在某些地方缺少某些语法和逻辑。

2 个答案:

答案 0 :(得分:4)

您应该使用SELF JOIN

通过使用原始表的ResellerID列和第二个表的ID列作为别名来加入同一张表。

select t1.customernumber, t2.customernumber as 'ParentAccount'
from table1 t1 LEFT JOIN table1 t2 ON t1.ResellerID  = t2.ID

答案 1 :(得分:1)

做自我(左)加入

select t1.CustomerNumber,t2.CustomerNumber as Parent_Account
from table1 t1 
left join table1 t2
on t1.ResellerID=t2.id

   CustomerNumber   Parent_Account
    12                NULL
    56                12

DEMO IN DB FIDDLE