2016-10-04 1 views
0

Dans SQL Server 2005, en associant deux tables sur deux colonnes, comment obtenons-nous la valeur en comparant la première table deux colonnes à la deuxième table deux colonnes et la valeur zéro pour non colonnes correspondantes?SQL Server 2005 - Jointure de deux tables et de deux colonnes

Voici les exemples de tableaux:

Tableau 1:

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

Tableau 2:

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

Le résultat attendu:

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

Je l'ai fait avec succès sur MS Excel en utilisant Pivot Tableau formule:

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

Demandez-vous comment écrire une déclaration 'select'? Avez-vous essayé quelque chose ou demandé du code? –

Répondre

1

Vous cherchez LEFT JOIN et 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)