首页 > 解决方案 > SQL如何使用不同的列和连接连接两个查询

问题描述

我有 2 个查询都使用连接,从多个表中选择不同的列,这些列产生以下结果集:

companyID   workType    contractnumber  employeenumber  Value2
1           1C          9999999         111111          2547.21
1           1C          9999999         222222          863.67
1           1C          9999999         333333          2962.15
1           1C          9999999         444444          1971.61
1           1C          9999999         555555          152.41
1           1C          9999999         666666          155.90
1           1C          9999999         777777          657.20


companyID   normalWorkType  employeeNumber  value1
1           1C              11111           1016.08
1           1C              22222           3118.05
1           1C              33333           2628.81
1           61              44444           2547.21

我希望加入这些以产生以下结果..谁能解释正确的语法是什么?

companyID   normalWorkType  contractnumber  employeeNumber  value1  Value2
1           1C              9999999         11111           1016.08 2547.21
1           1C              9999999         22222           3118.05 863.67
1           1C              9999999         33333           2628.81 2962.15
1           61              9999999         44444           2547.21 1971.61
1           1C              9999999         55555           0       152.41
1           1C              9999999         66666           0       155.90
1           1C              9999999         77777           0       657.20

上面的分组是在 companyID 和employeeNumber 上

标签: sqlsql-serversql-server-2005

解决方案


尝试左外连接:

SELECT t1.companyID,
       t2.normalWorkType,
       t1.contractnumber,
       t1.employeeNumber,
       coalesce(t2.value1,0) as t2.value1,
       t1.value2
FROM DatabaseName.t1 AS t1 LEFT OUTER JOIN
     DatabaseName.t2 AS t2 ON t1.employeenumber = t2.employeenumber  
       AND t1.companyID = t2.companyID

推荐阅读