根据另一个表的多个列中的值添加不同表中的值

时间:2017-05-22 10:26:33

标签: sql-server

我有2张桌子

Table 1
Name    column2 column3 column 4
Suzy    English  null     null  
Rocky   Polish   Irish  null
John    English  American  Funny 
George  Funny   English   null

Table 2
Column    Value 
English    2     
Polish    3     
Irish     2      
Funny     0  
American   1 

表2中列的值是唯一的。 我想在表1中添加一列,该列找到表1中第2,3和4列的所有匹配值,在表2的“列”中找到相应的值并添加相应的值,以便现在表1更新为

Table 1
Name    column2 column3 column 4    Total
Suzy    english  null     null      2
Rocky   Polish   Irish  null        5
John    English  American  Funny    3
George  Funny   English  null       2

这有可能吗?或者我是否需要先进行另一次查询?

2 个答案:

答案 0 :(得分:1)

您的表格结构不太理想,因为表1中的所有2AUK20170407000006002840700014DeitzpiascECCSERVICE1 SAPMSSY1 3001ZRFC_ICICI&&ZRFC_ICICI itzpiascs 2AUK20170407000006002840700014DeitzpiascECCSERVICE1 SAPMSSY1 3001SYSU&&SYSTEM_RESET_RFC_SERVER itzpiascs 2AUK20170407000007002840700014DeitzpiascECCSERVICE1 SAPMSSY1 3001ZRFC_ICICI&&ZRFC_ICICI itzpiascs column2column3都包含相同“类型”的项目。

有多种方法可以创建总计 - 我们可以执行多个连接或使用相关的子查询。我在这里使用子查询:

column4

答案 1 :(得分:0)

您可以使用左连接并执行以下添加

select t1.*, [Total] = isnull(C2.Value,0) + isnull(C3.Value,0) + isnull(C4.Value,0) 
   from [Table 1] t1
   left join [Table 2] c2 on t1.Column1 = c2.[Column]
   left join [Table 2] c3 on t1.Column1 = c3.[Column]
   left join [Table 2] c4 on t1.Column1 = c4.[Column]