Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2012, 02:10
cpozo
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 17 años, 3 meses
Puntos: 0
No obtengo registros con referencias a null

Hola, tengo esta select que funciona correctamente y me saca el resultado que que necesito excepto que le falta un campo que es el me me está complicando la existencia porque no hay manera de obtener el resultado deseado. Por eso recurro a vosotros.
Como comento, necesito algo así pero con un campo más. Esta me saca el resultado que yo quiero pero sin devolver el puesto que también necesito.

Código SQL:
Ver original
  1. SELECT DISTINCT u.CO_UNID_ AS codigo, u.NO_UNID AS unid,
  2.  t.NOMBRE  AS emp,
  3.  t. APELLIDO1  AS ape1,
  4.  t. APELLIDO2  AS ape2,
  5. t.CO_EMPLEADO  AS coemp,
  6. u.TIT_RESP AS resp
  7. FROM UNID u, TRABAJADOR t, TRABUNID e , PUESTO pu
  8. WHERE u.CO_RESPONSABLE= t.ID_TRABAJADOR(+)
  9. AND t.ID_TRABAJADOR = e.ID_TRABAJADOR (+)
  10. AND U.ES_SOCIO LIKE 'S'  
  11. AND (translate(LOWER(u.UNID_ORG),'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜÑÇ', 'aeiouaeiouaeiouaeiouñç')
  12. LIKE translate(LOWER(USTRIOA.PK_TRANSF.FU_ACC_TR('%A%')),'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜÑÇ', 'aeiouaeiouaeiouaeiouñç') )
  13. ORDER BY u.NO_UNID


Y aquí añado otra select con el campo que necesito. El problema es que yo necesito mostrar todas las unidades con el nombre del responsable, cargo y puesto incluso aunque no tengan responsable pero no me salen todas. Pasa que como algunas unidades no tienen responsable, en la tabla TRABUNID no existe ningún registro que me relacione trabajador y unidad y por tanto no sé como hacer para que me los muestre porque he probado de todo. A ver si me pueden ayudar.


Código SQL:
Ver original
  1. SELECT DISTINCT u.CO_UNID AS codigo, u.NO_UNID AS unid,
  2.  t.NOMBRE  AS emp,
  3.  t.APELLIDO1  AS ape1,
  4.  t.APELLIDO2  AS ape2,
  5. t.CO_EMPLEADO  AS coemp,
  6. u.TIT_RESP AS resp,
  7. (SELECT NO_PUESTO
  8. FROM PUESTO PU
  9. WHERE PU.CO_PUESTO=E.CO_PUESTO
  10. AND u.CO_RESPONSABLE = t.ID_TRABAJADOR
  11. AND e.TRAB_ID_TRABAJADOR=t.TRAB_ID_TRABAJADOR
  12. ) puesto
  13. FROM UNID u, TRABAJADOR t, TRABUNID e , PUESTO pu
  14. WHERE pu.co_puesto=e.co_puesto
  15. AND e.id_trabajador=t.id_trabajador
  16. AND e.co_unid=u.co_unid
  17. AND u.co_responsable=t.id_trabajador
  18. AND U.ES_SOCIO LIKE 'S'  
  19. AND (translate(LOWER(u.UNID_ORG),'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜÑÇ', 'aeiouaeiouaeiouaeiouñç')
  20. LIKE translate(LOWER(USTRIOA.PK_TRANSF.FU_ACC_TR('%A%')),'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜÑÇ', 'aeiouaeiouaeiouaeiouñç') )
  21. ORDER BY u.NO_UNID
saludos y gracias de antemano