Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] Query para expertos

Estas en el tema de Query para expertos en el foro de PostgreSQL en Foros del Web. Buenas a todos, hay una consulta que no consigo que me salga como quiero. Veréis al hacer el inner join del id a veces es ...
  #1 (permalink)  
Antiguo 11/02/2016, 17:16
 
Fecha de Ingreso: agosto-2015
Mensajes: 40
Antigüedad: 9 años, 2 meses
Puntos: 0
Query para expertos

Buenas a todos,
hay una consulta que no consigo que me salga como quiero. Veréis al hacer el inner join del id a veces es null la clave foránea. Lo que quiero es hacer que cuando Sea NULL entonces coja la columna de la misma tabla y que no me haga el inner join

ejemplo:
Código SQL:
Ver original
  1. SELECT id, to_char(fecha_primera,  'DD-MM-YYYY HH:MM') AS fechaprimera, to_char(fecha_ultima,  'DD-MM-YYYY HH:MM') AS fechafinaliza,
  2. CASE WHEN nombre_equipo IS NULL THEN equipo ELSE nombre_equipo END AS nombre_equipo
  3. FROM tabla1
  4. INNER JOIN tabla2 ON idequipotabla2 = idequipotabla1
  5. WHERE 1=1
  6. GROUP BY id, fecha_ultima, fecha_primera, nombre_equipo
  7. ORDER BY fecha_ultima DESC

La columna equipo pertenece a la tabla 1 y la columna nombre_equipo pertenece a la tabla 2.
Lo que quiero es mostrar el id, la fecha primera, la fecha de fin y el nombre del equipo con un inner join porque hay diferentes nombres por ejemplo en la tabla 2 tengo nombres específicos por eso hago el inner join y en la tabla 1 tengo nombres generales y si hay un nombre especifico entonces quiero coger el nombre especifico, si esta null entonces pongo el nombre general para que no se quede vacío.
¿Cómo puedo hacer el inner join en caso de que el id no sea null y una comprobacion del nombre del equipo de la tabla 2, porque si quito el inner join me dice que "nombre_equipo" no existe.

Muchas gracias.
Saludos.

Última edición por gnzsoloyo; 11/02/2016 a las 18:43

Etiquetas: expertos, order, query, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:36.