Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2012, 08:10
critina
 
Fecha de Ingreso: junio-2012
Mensajes: 2
Antigüedad: 12 años, 6 meses
Puntos: 0
Doble left outer join SQL Server

Buenas tardes,

Podría alguien ayudarme? Mi problema es el siguiente, tengo tres tablas:

Tabla 1 CONTINENTE
CONTINENTE_ID CONTINENTE
1 AMERICA
2 AFRICA
3 ASIA



TABLA 2 PAIS
PAIS_ID CONTINENTE PAIS
1 AMERICA COLOMBIA
2 AMERICA CUBA
3 AFRICA KENYA

Como veis no tengo pais para ASIA

TABLA 3 CIUDAD

CIUDAD_ID CONTINENTE PAIS CIUDAD
1 AMERICA COLOMBIA BOGOTA
2 AMERICA COLOMBIA CARTAGENA
3 AMERICA CUBA LA HABANA
4 ASIA NULL PEKIN

La idea de la query es la siguiente, necesito para cada pais el número de ciudades que tiene, si no tiene ciudades me devuelve cero.

El resultado sería:

AMERICA COLOMBIA 2
AMERICA CUBA 1
ASIA NULL 1
AFRICA KENYA 0

Lo he intentado de la siguiente manera pero no me sale bien:

SELECT B.CONTINENTE, B.PAIS, COUNT(A.PAIS)
FROM CONTINENTE B LEFT OUTER JOIN PAIS C
ON B.CONTINENTE=C.CONTINENTE
LEFT OUTER JOIN CIUTDAD A ON B.CONTINENTE=A.CONTINENTE AND C.PAIS=A.PAIS
GROUP BY B.CONTINENTE, B.PAIS


Muchas gracias