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

Mostrar el ultimo registro

Estas en el tema de Mostrar el ultimo registro en el foro de Mysql en Foros del Web. "select * from antivirusnodempresa where FECHA in (select max(FECHA) from antivirusnodempresa group by DNI)order by FECHA desc"; Esta es la consulta que hice pensado que ...
  #1 (permalink)  
Antiguo 26/01/2010, 13:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Mostrar el ultimo registro

"select * from antivirusnodempresa where FECHA in (select max(FECHA) from antivirusnodempresa group by DNI)order by FECHA desc";

Esta es la consulta que hice pensado que funcionaria prero no. Lo que quiero es que ordene por el ultimo regitro de cada usuario y que solo me muestre el ultimo regitro el mas actual.

gracias.
  #2 (permalink)  
Antiguo 26/01/2010, 14:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Mostrar el ultimo registro

djkire, prueba esta:
Código SQL:
Ver original
  1. SELECT
  2.     T1.DNI, T1.fecha
  3.  FROM
  4.      (SELECT
  5.            DNI, fecha
  6.       FROM antivirusnodempresa
  7.            ORDER BY fecha DESC) T1
  8.  GROUP BY
  9.       T1.DNI

si quieres añadir más campos, los añades en la subconsulta y luego en la consulta con T1 por delante.
  #3 (permalink)  
Antiguo 26/01/2010, 16:10
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: Mostrar el ultimo registro

Si entendí bien sería algo así

Código SQL:
Ver original
  1. SELECT a.dni,a.fecha FROM antivirusdempresa a
  2. INNER JOIN (SELECT dni,MAX(fecha)fecha_mayor FROM
  3. antivirusdempresa GROUP BY dni)t1
  4.  ON (a.dni,a.fecha)=(t1.dni,t1.fecha_mayor);

Nos cuentas como te va.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 26/01/2010, 18:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Mostrar el ultimo registro

Lo que pasa es que en esa consulta estariamos hablando de dos tablas distintas lo que yo quiero es todo en la misma tabla entonces no me vale esa consulta.


Lo que quiero es que en la tabla antivirusempresanod me muestre si por ejemplo pepito se registra el 26/01/2010 y despues se vuelve a registrar el 28/01/2010. Solo mostraria la de el 28/01/2010.


Gracias.
  #5 (permalink)  
Antiguo 26/01/2010, 19:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mostrar el ultimo registro

No estás hablando de dos tablas distintas. Estás operando con la misma tabla a través de una consulta que usa una subconsulta.
Es una forma práctica de resolver tu problema usando una sola tabla.

¿Por qué te parece que está mal?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 26/01/2010, 19:13
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Mostrar el ultimo registro

Pues porque no me muestra los registros de forma correcta. Me muestra solo la fecha y es las menores o eso me parece.
  #7 (permalink)  
Antiguo 26/01/2010, 19:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mostrar el ultimo registro

Veamos:
Jurena te propuso esto, que te devuelve la más reciente, de cada uno de los usuarios:
Código MySQL:
Ver original
  1.     T1.DNI, T1.fecha
  2.      (SELECT
  3.            DNI, fecha
  4.       FROM antivirusnodempresa
  5.            ORDER BY fecha DESC) T1
  6.       T1.DNI
No te puede estar devolviendo las fechas menores (las más antiguas), precisamente por la cláusula DESC.
Y además te dijo esto:
Cita:
si quieres añadir más campos, los añades en la subconsulta y luego en la consulta con T1 por delante.
con lo que si le faltan datos, debes ponérselos tu, que eres quien sabe qué datos contiene esa tabla...

Huesos52, por su parte te propone esto:
Código MySQL:
Ver original
  1.     a.dni,
  2.     a.fecha
  3. FROM antivirusdempresa a
  4.     INNER JOIN
  5.         (SELECT  
  6.             dni,
  7.             MAX(fecha)fecha_mayor
  8.         FROM antivirusdempresa
  9.         GROUP BY dni) t1  
  10.         ON  a.dni = t1.dni AND  a.fecha = t1.fecha_mayor;
(con algún cambio mío en el ON).
Esta consulta hace virtualmente lo mismo, pero de otra forma: Busca y agrupa los datos más recientes de cada usuario, y luego los cruza con sigo mismo para devolverte los datos de la tabla que necesitas.
También en este caso, si quieres más datos, debes ponerlos en el SELECT para que salgan...

Cualquiera de los dos casos hace lo que pides. Lo hacen de formas diferentes, nada más.

Lo único que me queda por deducir, si esto no te está devolviendo lo que quieres, es que lo que tu deseas es un sólo registro.
¿es así?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 26/01/2010, 19:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Mostrar el ultimo registro

no si es correcto quiero los ultimos registros de todos los usuarios pero a que select le tengo que añadir los campos para que me los muestre a el 1 o al segundo??
  #9 (permalink)  
Antiguo 26/01/2010, 20:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mostrar el ultimo registro

Eso ya te lo respondió jurena sin que le preguntaras:
Cita:
si quieres añadir más campos, los añades en la subconsulta y luego en la consulta con T1 por delante.
Eso quiere decir que debe ir en ambas partes, solamente que debes indicar correctamente en la consulta principal de qué tabla tomará los valores.
Una subconsulta genera una tabla virtual o derivada, por ello debe llevar ALIAS. En el caso de la de jurena, el alias es T1, entonces, siguiendo el estandar del SQL, todo valor proveniente de la subconsulta debe usar el nombre de su tabla: T1. DNI, T1.Fecha, y así sucesivamente... Es parte de las reglas básicas de SQL.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 27/01/2010, 09:52
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Mostrar el ultimo registro

Si eso lo entiendo pero no se como aplicarlo despues para mostrar los campos en un array asi:

Código PHP:
if ($columna mysql_fetch_array($resultat)){
echo 
"<p><img src='TODOS_LOS_REGISTROS.gif' width='230' height='48' align='CENTER'><p>";
echo 
"<table border='0'>";
echo 
"<tr>";
echo 
"<table border='0'>";
echo 
"<tr><th></th><th></th><th></th><th></th><th></th><th></th><th></th><th><img src='tabla_fecha.jpg'></th><th><img src='tabla_nombre.jpg'></th><th><img src='tabla_apellidos.jpg'></th><th><img src='tablas_poblacion.jpg'></th><th><img src='tabla_antivirus.jpg'></th><th><img src='tabla_licencias.jpg'></th></tr>";
     
do{
echo 
"<td>".$columna['NOMBRE'];
echo 
"<td>".$columna['APELLIDOS'];
echo 
"<td>".$columna['POBLACION'];
echo 
"<td>".$columna['ANTIVIRUS'];
echo 
"<td>".$columna['NUMLICENCIAS'];

echo 
"</tr>"
  #11 (permalink)  
Antiguo 27/01/2010, 09:58
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: Mostrar el ultimo registro

Eso ya es problema de php y no de la consulta djkire.

Prueba las consultas directamente en mysql y si cumplen con lo que requieres, ve al foro de php para que te ayuden a montarla en el lenguaje..

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: registro, ultimo
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:48.