SQL - Consulta con Select Max!

 
Vista:

Consulta con Select Max!

Publicado por David (7 intervenciones) el 27/07/2010 02:56:21
Buenas noches…. De antemano muchas gracias por su colaboración….

Tengo el siguiente query….

select distinct A1.IdEstacion, A1.TipoEquipo, A1.FechaHora
from Estaciones201007 A1
where A1.FechaHora > Convert (DATETIME, '2010-07-26 04:00:00')
and A1.FechaHora = (select max(FechaHora) from Estaciones201007 A2 where A1.IdEstacion = A2.IdEstacion
and A2.FechaHora > Convert (DATETIME, '2010-07-26 04:00:00')) and A1.TipoEquipo='TVM'

order by IdEstacion asc

Y el resultado es…..

IdEstacion TipoEquipo FechaHora
192.13.11.1 TVM 2010-07-26 19:31:26.000
192.13.23.1 TVM 2010-07-26 19:32:13.000
192.13.41.2 TVM 2010-07-26 19:30:52.000
192.13.45.2 TVM 2010-07-26 18:35:08.000

El resultado es indicarme el último registro tipo “TVM” de la estacion con id x... mi consulta es….tengo 50 estaciones, pero el query me arroja mucho menos de 50 registros… Creo que el tema esta por el “Select Max”.
Necesitaría que me arroje los 50 últimos registros de cada una de las estaciones……

Muchas gracias nuevamente,

David……..
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Consulta con Select Max!

Publicado por Leonardo Josue (1173 intervenciones) el 27/07/2010 16:10:46
Buenos días David:

estuve analizando un poco tu consulta y creo que te falta incluir en el subquery donde obtienes la Max(fecha) la comparación TipoEquipo='TVM'. Es decir, si la fecha máxima para una estación corresponde a una que no sea de tipo TVM, la
excluyes en la consulta exterior, por lo que te regresa menos registros que los esperados

Intenta con esto a ver si funciona:

select distinct A1.IdEstacion, A1.TipoEquipo, A1.FechaHora
from Estaciones201007 A1
where
A1.TipoEquipo='TVM' and
A1.FechaHora > Convert (DATETIME, '2010-07-26 04:00:00') and
A1.FechaHora =
(
select max(FechaHora)
from Estaciones201007 A2
where
A1.IdEstacion = A2.IdEstacion and
A2.TipoEquipo='TVM' and
A2.FechaHora > Convert (DATETIME, '2010-07-26 04:00:00')
)

Si continuas teniendo problemas comentalo en el foro, para ver en qué te podemos ayudar.

Saludos
Leo
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

RE:Consulta con Select Max!

Publicado por David (7 intervenciones) el 28/07/2010 09:39:35
Leonardo, nuevamente un sobresaliente….. la consulta quedo perfecta… una ultima duda ….. Por el motivo de no tener incluida la comparación TipoEquipo=’TVM’ dentro del Max(fecha), el resultado era aleatorio, es decir, unas veces me arrojaba 5 registros, otras veces 10, pero en ningún momento los 50…..?

Muchisimas gracias Leonardo…….
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Consulta con Select Max!

Publicado por Leonardo Josue (1173 intervenciones) el 28/07/2010 16:19:28
Hola de nuevo David, con respecto a tu pregunta, la consulta no puede arrojar resultados aleatorios, lo que me imagino que estaba sucediendo es que los datos de tu tabla se estaban actualizando constantemente, por eso es que algunas veces regresaba ciertos registros y en otras más o menos.

Saludos
Leo.
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