SQL Server - Mostrar el registro mas reciente de una tabla

 
Vista:

Mostrar el registro mas reciente de una tabla

Publicado por Alejandro (52 intervenciones) el 19/10/2015 19:27:16
Hola que tal, tengo un problema con una consulta que estoy, la cual me debe mostrar los registros mas recientes

La consulta se encuentra asi:

IdLogEventos IdVientre FechaEvento IdEstadoActual
1 13 2015-10-16 10:40:26.773 1
2 14 2015-10-16 10:46:17.950 1
3 15 2015-10-16 10:48:36.110 1
4 16 2015-10-16 10:56:29.430 1
5 17 2015-10-16 11:31:03.310 1
6 13 2015-10-16 17:12:04.770 2

En esta consulta debo solo mostrar el ultimo registro del IdVientre por ejemplo el 13 hago mi consulta asi

SELECT MAX(L.IdLogEventos) as IdLogEventos, V.IdVientre AS IdVientre, (L.FechaEvento AS FechaEvento)
FROM TP_LogEventos L
INNER JOIN TC_Vientres V ON L.IdVientre=V.IdVientre
GROUP BY
L.IdVientre

la consulta queda asi:

IdLogEventos IdVientre FechaEvento
2 14 2015-10-16 10:46:17.950
3 15 2015-10-16 10:48:36.110
4 16 2015-10-16 10:56:29.430
5 17 2015-10-16 11:31:03.310
6 13 2015-10-16 17:12:04.770

Mi consulta queda bien así, pero ojo el ultimo campo el IdEstadoActual no esta en esta consulta porque al ponerlo me vuelve arrojar los mismo registros, mi problema aquí es cuando agrego mas campos que tenga una diferencia en los registros.

Espero y alguien tenga una idea para poder solucionar mi problema.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Mostrar el registro mas reciente de una tabla

Publicado por Isaias (4557 intervenciones) el 19/10/2015 19:40:48
¿En que motor de base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar el registro mas reciente de una tabla

Publicado por Alejandro (52 intervenciones) el 19/10/2015 20:01:21
Es sql server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Mostrar el registro mas reciente de una tabla

Publicado por Isaias (4557 intervenciones) el 19/10/2015 20:14:55
Puedes postear que tiene la tabla TC_Vientres ? Un ejemplo de como quieres la salida de tu consulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar el registro mas reciente de una tabla

Publicado por Alejandro (52 intervenciones) el 19/10/2015 20:28:28
En realidad son otras 2 tablas mas, pero apenas ahorita con una me esta dando problemas pero va, asi es como deseo que este la consulta:

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT L.IdLogEventos,
                 L.FechaEvento,
	         V.IdVientre,
		 V.NombreVientre,
		 V.Tatuaje,
	         E.IdEstados AS IdEstadoActual,
		 E.Estado AS NombreEstadoActual,
		 D.IdEventos AS IdEventoActual,
		 D.Evento AS NombreEventoActual
	  FROM TP_LogEventos L
 LEFT JOIN TC_Vientres V ON L.IdVientre=V.IdVientre
 LEFT JOIN TC_Estados E ON L.IdEstadoActual=E.IdEstados
 LEFT JOIN TC_Eventos D ON L.IdEventoActual=D.IdEventos

Antes de incluirle el MAX, la verdad las demas pantallas son de tipo catalogo, solo hay un registro la que es como detalle es, esta la llamada TP_LogEventos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Mostrar el registro mas reciente de una tabla

Publicado por Isaias (4557 intervenciones) el 19/10/2015 20:32:04
Bueno, sin tener los datos completos, no puedo hacer un ejercicio en mi equipo, seria como adivinar.

Y cuando me refiero a la SALIDA de tu query, me refiero a como saldrán los datos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar el registro mas reciente de una tabla

Publicado por Alejandro (52 intervenciones) el 19/10/2015 20:36:44
ok, los datos serian asi:

IdLogEventos FechaEvento IdVientre NombreVientre Tatuaje IdEstadoActual NombreEstadoActual IdEventoActual NombreEventoActual
1 2015-10-16 10:40:26.773 13 V01 xxx 1 N/A 1 ENTRADA
2 2015-10-16 10:46:17.950 14 V02 zzzz 1 N/A 1 ENTRADA
3 2015-10-16 10:48:36.110 15 V03 xxxx 1 N/A 1 ENTRADA
4 2015-10-16 10:56:29.430 16 V04 dddd 1 N/A 1 ENTRADA
5 2015-10-16 11:31:03.310 17 V05 xxx 1 N/A 1 ENTRADA
6 2015-10-16 17:12:04.770 13 V01 xxx 2 CUARENTENA 21 CAMBIO CORRAL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar el registro mas reciente de una tabla

Publicado por Alejandro (52 intervenciones) el 19/10/2015 21:04:07
Al parecer ya pude sacar la consulta Isaias, mira asi fue como resolvi el problema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT L1.IdLogEventos AS IdLogEventos,
		   L1.FechaEvento AS FechaEvento,
	       V.IdVientre AS IdVientre,
		   V.NombreVientre,
		   V.Tatuaje,
		   E.IdEstados AS IdEstadoActual,
		   E.Estado AS NombreEstadoActual,
		   D.IdEventos AS IdEventoActual,
		   D.Evento AS NombreEventoActual
	  FROM TP_LogEventos AS L1
INNER JOIN (SELECT IdVientre, MAX(FechaEvento) AS Max_Fecha FROM TP_LogEventos GROUP BY IdVientre) AS L2
        ON L1.IdVientre=L2.IdVientre AND L1.FechaEvento=L2.Max_Fecha
INNER JOIN TC_Vientres V ON L1.IdVientre=V.IdVientre
INNER JOIN TC_Estados E ON L1.IdEstadoActual=E.IdEstados
INNER JOIN TC_Eventos D ON L1.IdEventoActual=D.IdEventos


Con el primer join fue el que me dio la solución y pude así comparar las fechas. Como sea muchas gracias por tu tiempo y dejo este ejemplo para alguien que tenga el mismo problema.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar