2016-10-04 7 views
0

В 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 с использованием Pivot Таблица формула:

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

вы спрашиваете, как написать 'SELECT' заявление? Вы что-то пробовали или просили код? –

ответ

1

Вы ищете LEFT JOIN и COALESCE:

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)