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

Recuperar Varios Registros de Tabla, filtrando por maximo campo

Estas en el tema de Recuperar Varios Registros de Tabla, filtrando por maximo campo en el foro de SQL Server en Foros del Web. Buenas Foreros... A ver si pueden ayudarme con una consulta que me está llevando a la locura... Verán tengo los siguientes registros: Código: CODIGO ANYO ...
  #1 (permalink)  
Antiguo 17/06/2013, 04:34
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Recuperar Varios Registros de Tabla, filtrando por maximo campo

Buenas Foreros...

A ver si pueden ayudarme con una consulta que me está llevando a la locura...

Verán tengo los siguientes registros:

Código:
CODIGO ANYO MES FECHA
C-1111	2013	1	2013-06-12 17:58:00
C-1111	2012	12	2013-06-12 17:46:00
P-2222	2014	1	2013-05-09 15:41:00
M-1112	2013	1	2013-04-26 10:59:00

Bueno.. pues quiero recuperar todos los registros con CODIGO diferente, pero cuya fecha sea la maxima.

Es decir, mi consulta debería devolverme esto:

Código:
C-1111	2013	1	2013-06-12 17:58:00
P-2222	2014	1	2013-05-09 15:41:00
M-1112	2013	1	2013-04-26 10:59:00

Pero soy incapaz de conseguir dicho resultado...

Por favor, Pueden ayudarme???
__________________
Charlie.
  #2 (permalink)  
Antiguo 17/06/2013, 08:34
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: Recuperar Varios Registros de Tabla, filtrando por maximo campo

Código SQL:
Ver original
  1. CREATE TABLE #temp(
  2. codigo VARCHAR(20),
  3. anyo INT,
  4. mes INT,
  5. fecha datetime
  6. )
  7. --CODIGO ANYO MES FECHA
  8. INSERT INTO #temp VALUES ('C-1111', 2013,   1,  '2013-12-06 17:58:00')
  9. INSERT INTO #temp VALUES ('C-1111', 2012,   12, '2013-12-06 17:46:00')
  10. INSERT INTO #temp VALUES ('P-2222', 2014,   1,  '2013-09-05 15:41:00')
  11. INSERT INTO #temp VALUES ('M-1112', 2013,   1,  '2013-26-04 10:59:00')
  12. DELETE FROM #temp
  13.  
  14. SELECT * FROM #temp WHERE CONVERT(VARCHAR(20),codigo) + '|' + CONVERT(VARCHAR(20),fecha) IN (
  15. SELECT CONVERT(VARCHAR(20),codigo) + '|' + CONVERT(VARCHAR(20),MAX(fecha)) FROM #temp GROUP BY codigo
  16. )

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campo, maximo, registro, registros, 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 02:17.