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

Query join

Estas en el tema de Query join en el foro de SQL Server en Foros del Web. Hola podrían ayudarme con un query, nose como sacarlo, verán tengo una tablaA con los siguientes datos tablaA codigo nombre fecha 1 roger 05/01/2014 1 ...
  #1 (permalink)  
Antiguo 04/08/2014, 14:08
 
Fecha de Ingreso: enero-2013
Mensajes: 57
Antigüedad: 11 años, 3 meses
Puntos: 1
Query join

Hola podrían ayudarme con un query, nose como sacarlo, verán tengo una tablaA con los siguientes datos

tablaA
codigo nombre fecha
1 roger 05/01/2014
1 jorge 07/01/2014
1 ana 15/03/2014
2 perez 27/01/2014
3 lucia 13/05/2014
3 alberto 10/01/2014
4 Ilda 01/07/2014

En esta tablaA quiero hacer un group by por el codigo y luego tomar la de mayor fecha y todos los demas datos correspondiente a esa fecha por ejemplo quedaria asi.
Obs: no hay llaves primarias y ademas las fechas no se puede repetir para el mismo codigo.

tablaB
codigo nombre fecha
1 ana 15/03/2014
2 perez 27/01/2014
3 lucia 13/05/2014
4 Ilda 01/07/2014

Gracias!

Última edición por info0506; 04/08/2014 a las 14:25
  #2 (permalink)  
Antiguo 04/08/2014, 14:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Query join

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT,
  4. nombre VARCHAR(20),
  5. fecha datetime
  6. )
  7.  
  8.  
  9.  
  10. INSERT INTO #temp VALUES (1,'roger','01/05/2014')
  11. INSERT INTO #temp VALUES (1,'jorge','01/07/2014')
  12. INSERT INTO #temp VALUES (1,'ana','03/15/2014')
  13. INSERT INTO #temp VALUES (2,'perez','01/27/2014')
  14. INSERT INTO #temp VALUES (3,'lucia','05/13/2014')
  15. INSERT INTO #temp VALUES (3,'alberto','01/10/2014')
  16. INSERT INTO #temp VALUES (4,'Ilda','07/01/2014')
  17.  
  18. SELECT t1.* FROM #temp AS t1
  19. INNER JOIN (SELECT MAX(fecha) fecha,id FROM #temp GROUP BY id ) AS t2 ON (t1.fecha=t2.fecha AND t1.id=t2.id)
  20. ORDER BY id ASC

Resultado:

id nombre fecha
----------- -------------------- -----------------------
1 ana 2014-03-15 00:00:00.000
2 perez 2014-01-27 00:00:00.000
3 lucia 2014-05-13 00:00:00.000
4 Ilda 2014-07-01 00:00:00.000
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 04/08/2014, 14:29
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Query join

Haces un SUBSELECT con la información requerida y lo unes mediante un JOIN hacia tus datos de origen.

Este seria tu subselect
Código SQL:
Ver original
  1. SELECT código, MAX(fecha) FROM tablaA GROUP BY código

NOTA: Después de ver el post del buen LIBRAS, quiero decir que a mi me da mucha pena (en mi pueblo le dicen de otra forma), hacer la chamba completa.
__________________
MCTS Isaias Islas

Última edición por iislas; 04/08/2014 a las 14:35

Etiquetas: join, query, siguiente, 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 18:54.