SQL - join

 
Vista:

join

Publicado por oscar (39 intervenciones) el 12/07/2006 00:34:29
Buenas tardes
Tengo dos tablas:

Tabla1
Codigo_departamento
Departamento

Tabla2
Codigo_departamento
Numero_Operacion
Producto

Necesito crear una consulta que me traiga el total del numero de operaciones (Numero_operacion) por Departamento, PERO si en Tabla2 no hay dato de un Departamento, necesito que me muestre el contador en 0 (cero).

Esto debido a que al relacionarlo por Codigo_Departamento, los Departamentos que no tienen información no los muestra en el resultado de la consulta. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:join

Publicado por agp (5 intervenciones) el 13/07/2006 14:16:43
Cuando quieras hacer una consulta con dos o más tablas haciendo join entre ellas y quieres que salgan todos los registros aunque en una de las tablas no exista coincidencia, debes hacer un OUTER JOIN. Si puedes leer algún manual sobre esto te lo explicará mejor que yo porque tiene varias posibilidades, pero yo te respondo más o menos como sé. Has de poner en las condiciones de la join entre las dos tablas el símbolo (+) en los campos de la tabla en la que puede no encontrar correspondencia (en todos los campos). Es decir, si es en T2 donde puede que no tenga datos:

SELECT T1.CODE, T1.DEPT, COUNT(T2.NUM_OP)
FROM T1, T2
WHERE T1.CODE = T2.CODE(+)
GROUP BY T1.CODE, T1.DEPT
ORDER BY T1.CODE

Si añadieras alguna condición para algún campo de la tabla 2 deberias poner también el (+). Por ejemplo:

WHERE .... AND T2.FECHA_OPERACION(+) = SYSDATE

Espero haber entendido la pregunta y haberte ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar