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

#1 Maxi
23/06/2005 - 13:51 | Informe spam
Hola, como seria en el ultimo mov?


Salu2
Maxi


"Sergio" escribió en el mensaje
news:

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.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
23/06/2005 - 14:06 | Informe spam
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.



Respuesta Responder a este mensaje
#3 sergio
23/06/2005 - 22:02 | Informe spam
Perdonar por la falta de información os pongo la definición de ambas tablas:

Tabla Terminal

NumTerminal int
NumTelefono decimal
NumExtCorta decimal
NumUsuario int
NumEmpresa smallint
NumDelegacion smallint
NumDpto smallint
NumTipo int
NumModelo int
IMEI varchar
FechaAlta smalldatetime
FechaBaja smalldatetime
UsuarioModifica varchar
FechaModifica smalldatetime

Tabla MovimientoTerminal

NumID bigint
NumMovimiento int
NumTerminal int
NumTelefono int
NumExtCorta int
NumUsuario int
NumEmpresa smallint
NumDelegacion smallint
NumDpto smallint
FechMovimiento smalldatetime
NumMotivo smallint
NumTipo int
NumModelo int
Imei varchar

Bueno lo que yo quiero es hacer una consulta que me liste todos los
terminales que en el último movimiento
de cada terminal (el campo NumMovimiento indica el contador de los
movimientos para cada terminal por lo que
cuando se realiza un cambio en un terminal creamos un registro del
movimiento en la tabla movimiento terminal)
pues lo que quiero buscar es el motivo del cambio sobre el terminal
(NumMotivo determina el motivo del cambio
del terminal) pero me interesa saber el terminal y el motivo del último
movimiento por cada terminal.
Por lo que si en el buscador selecciono motivo "Reparación" (NumMotivo 7 por
ejemplo) me busque en la tabla
movimientoterminal todos lo terminales que en su último movimiento tengan
el 7 (Reparación) no creo que haga falta ver
para nada la tabla terminal la verdad..


Espero haberlo dejado un poco más claro.. :)


Saludos y muchas gracias.


"Sergio" escribió en el mensaje
news:

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.


Respuesta Responder a este mensaje
#4 sergio
23/06/2005 - 22:16 | Informe spam
Un ejemplo de movimientos de un terminal (el 227)

NumTerminal NumMovimiento, NumTelefono,NumExtCorta, NumUsuario, etc..

227 1 227 630060304 83621 167 0 0 14 2005-06-01 10:11:00 1 1 5
354763008709367
669 2 227 630060304 567421 167 0 0 14 2005-06-13 22:55:00 3 1 5
354763008709367
670 3 227 630060304 899986 167 0 0 14 2005-06-13 22:57:00 3 1 5
354763008709367
671 4 227 630060304 2225667 167 0 0 14 2005-06-13 22:59:00 3 1 5
354763008709367
672 5 227 630060304 77788544 167 0 0 14 2005-06-13 23:01:00 3 1 5
354763008709367
673 6 227 630060304 884422 167 0 0 14 2005-06-13 23:03:00 3 1 5
354763008709367
674 7 227 630060304 6642222 167 0 0 14 2005-06-13 23:05:00 3 1 5
354763008709367
675 8 227 630060304 77773333 167 0 0 14 2005-06-13 23:06:00 3 1 5
354763008709367
707 9 227 630060304 678546 167 0 0 14 2005-06-14 17:28:00 3 1 5
354763008709367
708 10 227 630060304 8756432 167 0 0 14 2005-06-14 17:30:00 3 1 5
354763008709367
709 11 227 630060304 3334555 167 0 0 14 2005-06-14 17:30:00 3 1 5
354763008709367
710 12 227 630060304 21342143 167 0 0 14 2005-06-14 17:33:00 3 1 5
354763008709367
711 13 227 630060304 555555555 167 0 0 14 2005-06-14 17:37:00 3 1 5
354763008709367
712 14 227 630060304 444444444 167 0 0 14 2005-06-14 17:37:00 3 1 5
354763008709367
713 15 227 630060304 666666666 167 0 0 14 2005-06-14 17:38:00 3 1 5
354763008709367

Saludos

"Sergio" escribió en el mensaje
news:

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.


Respuesta Responder a este mensaje
#5 sergio
23/06/2005 - 22:25 | Informe spam
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.
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida