SQL Server 2005 - 连接两个表和两列

时间:2016-10-04 11:33:12

标签: sql-server sql-server-2005

在SQL Server 2005中,通过在两列上连接两个表,我们如何通过将第一个表两列与第二个表的两列匹配来获取值,对于不匹配的列,将值为零?

以下是样本表:

表1:

City    Vehicle      Count
---------------------------
London  Two wheeler  834
NewYork Four wheeler 60
NewYork Two wheeler  3
Sydney  Four wheeler 514
Sydney  Two wheeler  4551

表2:

City    Vehicle     Count
---------------------------
London  Two wheeler   5
NewYork Two wheeler   2
Sydney  Two wheeler  16

预期产出:

City    Vehicle      Count
---------------------------
London  Two wheeler    5
NewYork Four wheeler   0
NewYork Two wheeler    2
Sydney  Four wheeler   0
Sydney  Two wheeler   16

我使用数据透视表公式在MS Excel上取得了成功:

{=INDEX($L$6:$L$550,MATCH(F6,IF($K$6:$K$550=G6,$J$6:$J$550),0))}

1 个答案:

答案 0 :(得分:1)

您寻求LEFT JOINCOALESCE

SELECT
    t1.city,
    t1.vehicle,
    COALESCE(t2.count,0) as count
FROM
    table_1 t1
LEFT JOIN table_2 t2 ON (t1.city = t2.city AND t1.vehicle = t2.vehicle)