Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/09/2015, 18:57
nelson12345
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 9 meses
Puntos: 2
Consulta UNION ALL duplica registros

Cordial saludo. Tengo una tabla llamada funcionario, departamentos y dependencias con los siguientes campos:

----------------------
funcionario
----------------------
cod_fun
nombres
apellidos
numdoc
cod_dep
cod_depen

----------------------
dependencias
----------------------
cod_depen
dtalle_depen

----------------------
departamentos
----------------------
cod_dep
dtalle_dep

Lo que pasa es que tengo 15 usuarios en la tabla funcionario y 4 de ellos tienen el campo cod_depen en 0 ya que no pertenecen a ninguna dependencia. Estoy tratando de hacer una consulta donde me traiga todos los funcionarios tengan o no dependencia, al hacer la consula completa solo me lista los que tienen algun valor en cod_depen, intento hacer dos consultas diferentes y unirlas con UNION ALL y lo que hace es listar primero todos los funcionarios ya que todos tienen departamento(cod_dep) y seguido me lista todos los funcionarios que tiene dependencia(cod_depen) duplicando los registros y me arroja 26 en total. ¿Alguien me puede guiar un poco sobre si es posible realizar lo que necesito? gracias:
Código SQL:
Ver original
  1. SELECT funcionario.cod_fun,funcionario.nombres,funcionario.apellidos,funcionario.numdoc,funcionario.cod_dep,
  2.                  departamentos.cod_dep,departamentos.dtalle_dep
  3.           FROM  funcionario,departamentos
  4.           WHERE funcionario.cod_dep=departamentos.cod_dep
  5.     UNION ALL
  6.     SELECT funcionario.cod_fun,funcionario.nombres,funcionario.apellidos,funcionario.numdoc,
  7.                  funcionario.cod_depen,dependencias.cod_depen,dependencias.dtalle_depen
  8.           FROM  funcionario,dependencias
  9.           WHERE funcionario.cod_depen=dependencias.cod_depen;

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

http://i61.tinypic.com/w0qp2q.png

Última edición por gnzsoloyo; 01/09/2015 a las 19:30 Razón: Imagen