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

Consultar ultimo registro de un usuario

Estas en el tema de Consultar ultimo registro de un usuario en el foro de PostgreSQL en Foros del Web. buen dia a todos tengo que realizar una consulta en el cual me de el ultimo regirsto del usuario va el ejemplo tengo una tabla ...
  #1 (permalink)  
Antiguo 11/02/2013, 15:14
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Consultar ultimo registro de un usuario

buen dia a todos

tengo que realizar una consulta en el cual me de el ultimo regirsto del usuario

va el ejemplo

tengo una tabla como esta

Tarjeta_______ hora_____________Saldo
__1____01-01-2013 12:15:30______100
__1____02-02-2013 13:12:20______90
__1____05-02-2013 10:14:50______80
__2____03-01-2013 14:10:40______110
__2____05-01-2013 23:34:55______100
__2____09-01-2013 21:23:34______90
__3____01-01-2013 12:20:40______10
__3____01-01-2013 12:55:50______140
__3____01-01-2013 13:10:50______130


lo que yo quiero optener es solo el ultimo registro

Tarjeta_______ hora_____________Saldo
__1____05-02-2013 10:14:50______80
__2____09-01-2013 21:23:34______90
__3____01-01-2013 13:10:50______130

espero me entiendan bien con este ejemplo

de antemano muchas gracias
  #2 (permalink)  
Antiguo 11/02/2013, 15:24
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consultar ultimo registro de un usuario

Código SQL:
Ver original
  1. SELECT t1.tarjeta,t1.hora,t1.saldo
  2. FROM tabla t1
  3. INNER JOIN
  4. (
  5. SELECT tarjeta,MAX(hora) AS hora
  6. FROM tabla
  7. GROUP BY tarjeta
  8. ) AS t2
  9. ON t1.tarjeta=t2.tarjeta AND t1.hora=t2.hora;

Prueba esto.

Creo que funciona
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 11/02/2013, 17:10
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Mensaje Respuesta: Consultar ultimo registro de un usuario

Cita:
Iniciado por huesos52 Ver Mensaje
Código SQL:
Ver original
  1. SELECT t1.tarjeta,t1.hora,t1.saldo
  2. FROM tabla t1
  3. INNER JOIN
  4. (
  5. SELECT tarjeta,MAX(hora) AS hora
  6. FROM tabla
  7. GROUP BY tarjeta
  8. ) AS t2
  9. ON t1.tarjeta=t2.tarjeta AND t1.hora=t2.hora;

Prueba esto.

Creo que funciona
buen dia

gracias por tu respuesta, pero no me trae ningun resultado al momento de realizarlo

no se si me puedas apoyar con otro tipo de consulta

gracias por el apoyo
  #4 (permalink)  
Antiguo 11/02/2013, 17:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consultar ultimo registro de un usuario

Lo debes estar implementando mal

Código SQL:
Ver original
  1. CREATE TABLE tabla(tarjeta INTEGER,hora TIMESTAMP,saldo INTEGER);
  2.  
  3. INSERT INTO tabla VALUES(1,to_timestamp('01-01-2013 12:15:30','DD-MM-YYYY HH24:MI'),100);
  4. INSERT INTO tabla VALUES(1,to_timestamp('02-02-2013 13:12:20','DD-MM-YYYY HH24:MI'),90);
  5. INSERT INTO tabla VALUES(1,to_timestamp('05-02-2013 10:14:50','DD-MM-YYYY HH24:MI'),80);
  6. INSERT INTO tabla VALUES(2,to_timestamp('03-01-2013 14:10:40','DD-MM-YYYY HH24:MI'),110);
  7. INSERT INTO tabla VALUES(2,to_timestamp('05-01-2013 23:34:55','DD-MM-YYYY HH24:MI'),100);
  8. INSERT INTO tabla VALUES(2,to_timestamp('09-01-2013 21:23:34','DD-MM-YYYY HH24:MI'),90);
  9. INSERT INTO tabla VALUES(3,to_timestamp('01-01-2013 12:20:40','DD-MM-YYYY HH24:MI'),10);
  10. INSERT INTO tabla VALUES(3,to_timestamp('01-01-2013 12:55:50','DD-MM-YYYY HH24:MI'),140);
  11. INSERT INTO tabla VALUES(3,to_timestamp('01-01-2013 13:10:50','DD-MM-YYYY HH24:MI'),130);
  12.  
  13. SELECT *FROM tabla;
  14. *tarjeta | * * * *hora * * * * | saldo
  15. ---------+---------------------+-------
  16. * * * *1 | 2013-01-01 12:15:00 | * 100
  17. * * * *1 | 2013-02-02 13:12:00 | * *90
  18. * * * *1 | 2013-02-05 10:14:00 | * *80
  19. * * * *2 | 2013-01-03 14:10:00 | * 110
  20. * * * *2 | 2013-01-05 23:34:00 | * 100
  21. * * * *2 | 2013-01-09 21:23:00 | * *90
  22. * * * *3 | 2013-01-01 12:20:00 | * *10
  23. * * * *3 | 2013-01-01 12:55:00 | * 140
  24. * * * *3 | 2013-01-01 13:10:00 | * 130
  25. (9 filas)
  26.  
  27. SELECT t1.tarjeta,t1.hora,t1.saldo
  28. FROM tabla t1
  29. INNER JOIN
  30. (
  31. SELECT tarjeta,MAX(hora) AS hora
  32. FROM tabla
  33. GROUP BY tarjeta
  34. ) AS t2
  35. ON t1.tarjeta=t2.tarjeta AND t1.hora=t2.hora;
  36.  tarjeta |        hora         | saldo
  37. ---------+---------------------+-------
  38.        1 | 2013-02-05 10:14:00 |    80
  39.        2 | 2013-01-09 21:23:00 |    90
  40.        3 | 2013-01-01 13:10:00 |   130
  41. (3 filas)

No es lo que buscas?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 13/02/2013, 23:24
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Consultar ultimo registro de un usuario

Cita:
Iniciado por huesos52 Ver Mensaje
Lo debes estar implementando mal

Código SQL:
Ver original
  1. CREATE TABLE tabla(tarjeta INTEGER,hora TIMESTAMP,saldo INTEGER);
  2.  
  3. INSERT INTO tabla VALUES(1,to_timestamp('01-01-2013 12:15:30','DD-MM-YYYY HH24:MI'),100);
  4. INSERT INTO tabla VALUES(1,to_timestamp('02-02-2013 13:12:20','DD-MM-YYYY HH24:MI'),90);
  5. INSERT INTO tabla VALUES(1,to_timestamp('05-02-2013 10:14:50','DD-MM-YYYY HH24:MI'),80);
  6. INSERT INTO tabla VALUES(2,to_timestamp('03-01-2013 14:10:40','DD-MM-YYYY HH24:MI'),110);
  7. INSERT INTO tabla VALUES(2,to_timestamp('05-01-2013 23:34:55','DD-MM-YYYY HH24:MI'),100);
  8. INSERT INTO tabla VALUES(2,to_timestamp('09-01-2013 21:23:34','DD-MM-YYYY HH24:MI'),90);
  9. INSERT INTO tabla VALUES(3,to_timestamp('01-01-2013 12:20:40','DD-MM-YYYY HH24:MI'),10);
  10. INSERT INTO tabla VALUES(3,to_timestamp('01-01-2013 12:55:50','DD-MM-YYYY HH24:MI'),140);
  11. INSERT INTO tabla VALUES(3,to_timestamp('01-01-2013 13:10:50','DD-MM-YYYY HH24:MI'),130);
  12.  
  13. SELECT *FROM tabla;
  14. *tarjeta | * * * *hora * * * * | saldo
  15. ---------+---------------------+-------
  16. * * * *1 | 2013-01-01 12:15:00 | * 100
  17. * * * *1 | 2013-02-02 13:12:00 | * *90
  18. * * * *1 | 2013-02-05 10:14:00 | * *80
  19. * * * *2 | 2013-01-03 14:10:00 | * 110
  20. * * * *2 | 2013-01-05 23:34:00 | * 100
  21. * * * *2 | 2013-01-09 21:23:00 | * *90
  22. * * * *3 | 2013-01-01 12:20:00 | * *10
  23. * * * *3 | 2013-01-01 12:55:00 | * 140
  24. * * * *3 | 2013-01-01 13:10:00 | * 130
  25. (9 filas)
  26.  
  27. SELECT t1.tarjeta,t1.hora,t1.saldo
  28. FROM tabla t1
  29. INNER JOIN
  30. (
  31. SELECT tarjeta,MAX(hora) AS hora
  32. FROM tabla
  33. GROUP BY tarjeta
  34. ) AS t2
  35. ON t1.tarjeta=t2.tarjeta AND t1.hora=t2.hora;
  36.  tarjeta |        hora         | saldo
  37. ---------+---------------------+-------
  38.        1 | 2013-02-05 10:14:00 |    80
  39.        2 | 2013-01-09 21:23:00 |    90
  40.        3 | 2013-01-01 13:10:00 |   130
  41. (3 filas)

No es lo que buscas?
si, muchisimas gracias

Etiquetas: consultar, registro, ultimo, usuario
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 03:00.