我有2个表:accounthierarchy和accountvaluetotal。
2个表之间的链接是帐号。我想根据帐号加入表格。但是表格#34;帐户层次结构"在不同的级别(列)。
你能帮我怎么做吗?感谢
CREATE TABLE [dbo].[accounthierarchy](
[ID] [int] NULL,
[level1] [int] NULL,
[level2] [int] NULL,
[level3] [int] NULL,
[level4] [int] NULL,
[level5] [int] NULL)
INSERT INTO [dbo].[accounthierarchy] (ID,level1,Level2,level3,level4,level5)
VALUES
(1,100,null,null,null,null),
(2,100,110,null,null,null),
(3,100,110,1110,null,null),
(4,200,220,null,null,null),
(5,200,230,null,null,null),
(5,200,240,null,null,null),
(6,200,240,2410,null,null)
CREATE TABLE [dbo].[accountvaluetotal](
[accountnumber] [int] NULL,
[values] [int] NULL
)
insert into [dbo].[accountvaluetotal]
values
(1110,5000),
(220,7400),
(230,6200),
(2410,5600)
答案 0 :(得分:1)
你可以使用INNER JOIN -
SELECT *
FROM accounthierarchy
INNER JOIN accountvaluetotal
ON level13=accountnumber;
答案 1 :(得分:0)
根据帐号是最后一个'帐户层次结构表中的值;
SELECT ID, COALESCE(ac.level5,ac.level4,ac.level3,ac.level2,ac.level1) as AccountNumber
from [accounthierarchy] ac
然后会为您提供帐号,然后您可以进行标准加入
COALESCE从值列表中给出第一个非空值,因此从第5级到第1级,它将返回它首先到达的有效值。