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

Consulta SELECT - Seleccionar la primera aparicion entre 2 tablas

Estas en el tema de Consulta SELECT - Seleccionar la primera aparicion entre 2 tablas en el foro de Oracle en Foros del Web. 1) tengo 2 tablas relacionados por el primary key T1 (ID, numero, fecha_t1 ) id_1 numero1 fecha1 id_2 numero2 fecha2 id_3 numero3 fecha3 id_4 numero4 ...
  #1 (permalink)  
Antiguo 24/05/2012, 18:50
 
Fecha de Ingreso: octubre-2006
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 0
Consulta SELECT - Seleccionar la primera aparicion entre 2 tablas

1) tengo 2 tablas relacionados por el primary key

T1 (ID, numero, fecha_t1 )
id_1 numero1 fecha1
id_2 numero2 fecha2
id_3 numero3 fecha3
id_4 numero4 fecha4

T2 (ID, descripcion, fecha_t2 )
id_1 descripcion1 fecha5
id_1 descripcion2 fecha6
id_2 descripcion3 fecha7
id_2 descripcion4 fecha8
id_2 descripcion5 fecha9
id_3 descripcion6 fecha10
id_3 descripcion7 fecha11
id_4 descripcion8 fecha12


2) Preciso de una consulta que me devuelva
esto: (la primera aparicion de los datos de ID de tabla1 en tabla2)

numero fecha_t1 descripcion fecha_t2
---------- ------------- --------------- -------------
numero1 fecha1 descripcion1 fecha5
numero2 fecha2 descripcion3 fecha7
numero3 fecha3 descripcion6 fecha10
numero4 fecha4 descripcion8 fecha12



3) He intentado con


select t1.numero, t1.fecha_t1, ttt.descripcion ttt.fecha_t2
from t1,
(select distinct id, descripcion,fecha_t2 from t2 where descripcion is not null) ttt
where t1.id = ttt.id
order by t1.numero asc;



4) igual me siguen saliendo duplicados como


id_3 numero3 fecha3 descripcion6 fecha10
id_3 numero3 fecha3 descripcion7 fecha11

  #2 (permalink)  
Antiguo 25/05/2012, 05:52
 
Fecha de Ingreso: enero-2007
Ubicación: Cali - Valle
Mensajes: 135
Antigüedad: 17 años, 3 meses
Puntos: 4
Respuesta: Consulta SELECT - Seleccionar la primera aparicion entre 2 tablas

Hola general9000


Segun lo que entendi lo unico que le hace falta a tu query seria lo siguiente:

Código SQL:
Ver original
  1. AND Rownum = 1

Esto se coloca en lugar del order y con eso te trae el primer registro que encuentre que cumpla las condiciones del join quedando asi:

Código SQL:
Ver original
  1. SELECT t1.numero, t1.fecha_t1, ttt.descripcion ttt.fecha_t2
  2. FROM t1,
  3. (SELECT DISTINCT id, descripcion,fecha_t2 FROM t2 WHERE descripcion IS NOT NULL) ttt
  4. WHERE t1.id = ttt.id
  5. AND Rownum = 1;

Pruebalo sino nos avisas para ver si es otra cosa.

Saludos.
  #3 (permalink)  
Antiguo 25/05/2012, 11:36
 
Fecha de Ingreso: octubre-2006
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Consulta SELECT - Seleccionar la primera aparicion entre 2 tablas

Sólo me devuelve un registro:

numero1 fecha1 descripcion1 fecha5

Cita:
Iniciado por general9000 Ver Mensaje

2) Preciso de una consulta que me devuelva
esto: (la primera aparicion de los datos de ID de tabla1 en tabla2)

numero fecha_t1 descripcion fecha_t2
---------- ------------- --------------- -------------
numero1 fecha1 descripcion1 fecha5
numero2 fecha2 descripcion3 fecha7
numero3 fecha3 descripcion6 fecha10
numero4 fecha4 descripcion8 fecha12

Última edición por general9000; 25/05/2012 a las 12:02

Etiquetas: select
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 09:54.