Consulta que no sale ..

23/06/2005 - 07:35 por Sergio | Informe spam
Hola Buenos días , tengo que hacer una consulta sobre las siguientes tablas:

Tabla "Terminal"

NumTerminal,NumTelefono,NumExtCorta,NumUsuario,NumEmpresa
NumDelegacion,NumDpto,NumTipo,NumModelo,IMEI,FechaAlta,FechaBaja
UsuarioModifica,FechaModifica

Tabla "MovimientoTerminal"

NumID,NumMovimiento,NumTerminal,NumTelefono,NumExtCorta,NumUsuario
NumEmpresa,NumDelegacion,NumDpto,FechMovimiento,NumMotivo,NumTipo,
NumModelo,Imei

Pues bien lo que tengo que sacar es todos los terminales que tengan un
NumMotivo
determinado (del 1 al 7) y que sólo mire en el último movimiento
(NumMovimiento) de la tabla
MovimientoTerminal.

Notas: NumId es un autonumérico código interno y NumMovimiento son los
movimientos de
un terminal ( un contador ).

Me emparrao completamente con la consulta no logro sacarla :)


Saludos y muchas gracias.

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
24/06/2005 - 15:12 | Informe spam
Sergio,

El cambio que hicistes es correcto, eso fue un error mio.

...
and a.NumMovimiento = b.max_NumMovimiento
...


AMB

"sergio" wrote:

Muchas gracias Alejandro , la consulta que posteastes hace justo lo que
quiero con la
pequeña modificación . vaya máquinas que estáis echos.. :)

select
a.NumTerminal
from
MovimientoTerminal as a
inner join
(
select
NumTerminal,
max(NumMovimiento) as max_NumMovimiento
from
MovimientoTerminal
group by
NumTerminal
) as b
on a.NumTerminal = b.NumTerminal
and a.NumMovimiento = max_NumMovimiento --b.NumMovimiento <- cambié esto
solamente
where
a.NumMotivo = 7


Esto me saca los terminales cuyo último movimiento es de motivo reparación
(7)

Saludos y hasta otra.

"Alejandro Mesa" escribió en el
mensaje news:
> Sergio,
>
> Gracias por postear la semi-definicion de la tabla, pero creo que eso no
es
> suficiente para entenrder lo que quieres hacer. Tambien es importante
saber
> los tipos de datos, asi como las relaciones entre las tablas. Hubiese sido
de
> mucha ayuda un ejemplo de la data y el resultado esperado.
>
> Trata con las siguientes sentencias.
>
> select
> NumTerminal
> from
> MovimientoTerminal as a
> where
> NumMotivo between 1 and 7
> and not exists(
> select
> *
> from
> MovimientoTerminal as b
> where
> b.NumTerminal = a.NumTerminal
> and b.NumMovimiento < a.NumMovimiento
> )
>
>
> select
> a.NumTerminal
> from
> MovimientoTerminal as a
> inner join
> (
> select
> NumTerminal,
> max(NumMovimiento) as max_NumMovimiento
> from
> MovimientoTerminal
> group by
> NumTerminal
> ) as b
> on a.NumTerminal = b.NumTerminal
> and a.NumMovimiento = b.NumMovimiento
> where
> a.NumMotivo between 1 and 7
>
>
> AMB
>
> "Sergio" wrote:
>
> >
> > Hola Buenos días , tengo que hacer una consulta sobre las siguientes
tablas:
> >
> > Tabla "Terminal"
> >
> > NumTerminal,NumTelefono,NumExtCorta,NumUsuario,NumEmpresa
> > NumDelegacion,NumDpto,NumTipo,NumModelo,IMEI,FechaAlta,FechaBaja
> > UsuarioModifica,FechaModifica
> >
> > Tabla "MovimientoTerminal"
> >
> > NumID,NumMovimiento,NumTerminal,NumTelefono,NumExtCorta,NumUsuario
> > NumEmpresa,NumDelegacion,NumDpto,FechMovimiento,NumMotivo,NumTipo,
> > NumModelo,Imei
> >
> > Pues bien lo que tengo que sacar es todos los terminales que tengan un
> > NumMotivo
> > determinado (del 1 al 7) y que sólo mire en el último movimiento
> > (NumMovimiento) de la tabla
> > MovimientoTerminal.
> >
> > Notas: NumId es un autonumérico código interno y NumMovimiento son los
> > movimientos de
> > un terminal ( un contador ).
> >
> > Me emparrao completamente con la consulta no logro sacarla :)
> >
> >
> > Saludos y muchas gracias.
> >
> >
> >



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida