SQL帮助 - 根据参考表

时间:2017-05-05 04:30:25

标签: sql sql-server

我正在使用四张桌子。其中一个表是empyt(ATM),有三列(ID,Cust_AcctID,Brch_CtyID),我想将数据插入到该表的Cust_AcctID和Brch_CtyID列中。

ID | Cust_AcctID | Brch_CtyID

第二个表(Cust_Acct)也有三列(ID,Customer和Account) Customer和Account列包含字符串数据。此列中的ID值是我要在Cust_AcctID列中插入ATM表的内容

ID |客户|帐户

1 | John Doe检查

2 | John Doe保存

3 | Jane Doe |检查

4 | Jane Doe | Plan24

第三个表(Brch_Cty)也有三列(ID,Branch和City) Branch和City列包含字符串数据。此列中的ID值是我希望插入到Brch_CtyID列中的ATM表中的。

ID |分公司|城市

1 |主要分支|纽约

2 |第二分支|纽约

3 |主要分支|芝加哥

4 |住宅区|底特律

第四个表是一个参考表,其中包含(客户,帐户)和(分支,城市)的所有有效组合。这些列中的所有数据都是字符串。

客户|帐户|分公司|城市

John Doe |检查|主要分支|纽约

John Doe |储蓄|第二分支|纽约

John Doe |检查|住宅区|底特律

Jane Doe |检查|住宅区|底特律

使用表4中的数据,我想将来自Cust_Acct表的ID列中的数据插入到Cust_AcctID列中,并与第四个表中的数据匹配。将Brch_Cty表ID插入Brch_CtyID列

也是如此

所以ATM表应该是这样的

ID | Cust_AcctID | Brch_CtyID

1 | 1 | 1

2 | 2 | 2

3 | 1 | 4

4 | 3 | 4

请你帮我为此构建一个SQL语句。我真的很难解决这个问题。感谢您给予的任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

Select ca.ID,bc.ID
From dbo.temp t Inner join dbo.Cust_Acct ca on ca.Customer=t.Customer AND 
ca.Account=t.Account 
inner join dbo.Brch_City bc on bc.Branch=t.Branch AND bc.City=t.City 
Where ca.Customer=t.Customer AND ca.Account=t.Account AND bc.Branch=t.Branch 
AND bc.City=t.City

希望这会有所帮助。 :)