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

Obtener Registros de fecha mas chica en SQL

Estas en el tema de Obtener Registros de fecha mas chica en SQL en el foro de SQL Server en Foros del Web. hola tengo una duda.. en sql trato de mostrar el registro de la fecha mas chica tengo la siguiente tabla @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver ...
  #1 (permalink)  
Antiguo 19/09/2013, 16:58
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Obtener Registros de fecha mas chica en SQL

hola tengo una duda.. en sql trato de mostrar el registro de la fecha mas chica

tengo la siguiente tabla

Código SQL:
Ver original
  1. MITABLA (Id INT IDENTITY, Nombre VARCHAR(30), Deposito MONEY, Fecha VARCHAR(30))

ejemplo de datos
Código SQL:
Ver original
  1. INSERT INTO @Ingresos VALUES ('María', 110, '2012-08-05 ')
  2. INSERT INTO @Ingresos VALUES ('María', 110, '2012-07-13')
  3.  
  4. INSERT INTO @Ingresos VALUES ('José', 100, '2012-07-11')
  5.  
  6. INSERT INTO @Ingresos VALUES ('Carlos', 90, '2012-07-13')
  7. INSERT INTO @Ingresos VALUES ('Carlos', 100, '2012-07-10')
  8. INSERT INTO @Ingresos VALUES ('Carlos', 85, '2012-08-01 ')
  9.  
  10. INSERT INTO @Ingresos VALUES ('Gabi', 100, '2012-02-10')

quero mostrar de cada persona el registro con la fecha mas pequeñaa que me quede asi

Código SQL:
Ver original
  1. 'María', 110, '2012-07-13'
  2. 'Carlos', 100, '2012-07-10'
  3. 'José', 100, '2012-07-11'
  4. 'Gabi', 100, '2012-02-10'

tengo las siguientes consultas pero ninguna me lo regresa como quiero

Código SQL:
Ver original
  1. SELECT Nombre, Ingreso, (SELECT Fecha FROM @Ingresos WHERE Fecha = MIN(fecha)) AS Fecha FROM @Ingresos
  2. GROUP BY Nombre, Ingreso, Fecha HAVING Fecha = MIN (fecha)

tambien tengo esta

Código SQL:
Ver original
  1. SELECT Nombre, Fecha FROM @Ingresos GROUP BY Nombre, Fecha HAVING Fecha = MIN(Fecha)

espero me puedan ayudar :( ..

gracias de antemano amigos del foro
__________________
si siempre hay algo nuevo que aprender
  #2 (permalink)  
Antiguo 19/09/2013, 19:20
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Obtener Registros de fecha mas chica en SQL

Hola elhombredeblanko, prueba con esta query y vas a obtener los resultados que deseas:

Código SQL:
Ver original
  1. SELECT Nombre, Ingreso, MIN(Fecha)
  2. FROM @ingresos
  3. GROUP BY Nombre, Ingreso

Saludos a los amigos de Mexico

damimg
  #3 (permalink)  
Antiguo 19/09/2013, 20:50
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Obtener Registros de fecha mas chica en SQL

me sale este error amigo
Cita:
Msg 207, Level 16, State 1, Line 17
Invalid column name 'Ingreso'.
Msg 207, Level 16, State 1, Line 15
Invalid column name 'Ingreso'.
ya habia probado con un codigo asi, pero pss el error me enfrento a la realidad :(
__________________
si siempre hay algo nuevo que aprender
  #4 (permalink)  
Antiguo 19/09/2013, 21:27
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Obtener Registros de fecha mas chica en SQL

Proba esta recuperacion:
Código SQL:
Ver original
  1. WITH T AS
  2. (SELECT *,
  3.    ROW_NUMBER() OVER(Partition BY Nombre ORDER BY Fecha) Nm
  4. FROM @Ingresos)
  5. SELECT *
  6. FROM T
  7. WHERE Nm=1;
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #5 (permalink)  
Antiguo 20/09/2013, 07: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: Obtener Registros de fecha mas chica en SQL

Cita:
Iniciado por damimg Ver Mensaje
Hola elhombredeblanko, prueba con esta query y vas a obtener los resultados que deseas:

Código SQL:
Ver original
  1. SELECT Nombre, Ingreso, MIN(Fecha)
  2. FROM @ingresos
  3. GROUP BY Nombre, Ingreso

Saludos a los amigos de Mexico

damimg
Estimado damimg, probaste el query que le propones al compañero? creo que no porque tu query obtiene un resultado diferente al que se esta buscando :P pero lo que importa son las ganas de querer ayudar :)

este query obtiene lo que buscas elhombredeblanko

Código SQL:
Ver original
  1. DECLARE @ingresos TABLE
  2. (
  3. dato1 VARCHAR(20),
  4. dato2 INT,
  5. dato3 datetime
  6. )
  7. INSERT INTO @Ingresos VALUES ('María', 110, '2012-08-05 ')
  8. INSERT INTO @Ingresos VALUES ('María', 110, '2012-07-13')
  9.  
  10. INSERT INTO @Ingresos VALUES ('José', 100, '2012-07-11')
  11.  
  12. INSERT INTO @Ingresos VALUES ('Carlos', 90, '2012-07-13')
  13. INSERT INTO @Ingresos VALUES ('Carlos', 100, '2012-07-10')
  14. INSERT INTO @Ingresos VALUES ('Carlos', 85, '2012-08-01 ')
  15.  
  16. INSERT INTO @Ingresos VALUES ('Gabi', 100, '2012-02-10')
  17.  
  18.  
  19. SELECT dato1, dato2, dato3
  20. FROM @ingresos WHERE dato1 + CONVERT(VARCHAR(20),dato3) IN (SELECT dato1 + CONVERT(VARCHAR(20),MIN(dato3)) FROM @ingresos GROUP BY dato1)

Te recomiendo buscar en el foro hay varios temas parecidos al tuyo :P

P.D: La solucion de GeriReshef tambien es optima :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 20/09/2013, 07:36
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: Obtener Registros de fecha mas chica en SQL

Cita:
Iniciado por elhombredeblanko Ver Mensaje
me sale este error amigo


ya habia probado con un codigo asi, pero pss el error me enfrento a la realidad :(
Amigo y porque usas una columna llamada ingreso? si en la tabla que declaras hay una que se llama deposito :S
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 20/09/2013, 09:19
Avatar de elhombredeblanko  
Fecha de Ingreso: junio-2011
Ubicación: México Lindo y Querido
Mensajes: 212
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Obtener Registros de fecha mas chica en SQL

Libras muchas graciass :D ..
me sirvio tu codigo..
aun sigo analizandolo , pero si me sirvio me arroja lo que andaba buscando..

Gracias amigo
__________________
si siempre hay algo nuevo que aprender
  #8 (permalink)  
Antiguo 23/09/2013, 18:40
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Obtener Registros de fecha mas chica en SQL

Es un problema claramente de formatos de los datos que contiene la tabla y no de la lógica de la query en si... espero hayamos podido ayudarte..

Libras valió tu aclaración.

Un saludo grande

damimg

Etiquetas: fecha, insert, registro, registros, select, sql, 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 23:45.