SQL - ¿Es posible esta consulta?

 
Vista:

¿Es posible esta consulta?

Publicado por Paranolla (1 intervención) el 07/04/2010 23:20:41
Tengo una tabla de movimiento de stocks en una base de datos en MySql, la tabla la forma tres campos:

-CodigoProducto (Código del producto del cual se realiza una entrada o una salida)
-Cantidad.(Cantidad del producto positiva si es una entrada en almacén ó negativa si es una salida)
-FechaHora(Se guarda la fecha en la que se produce o la entrada o la salida.)

Las clave primaria de la tabla es una clave compuesta por CodigoProducto y FechaHora.

¿Es posible obtener con una consulta una tupla por cada producto, donde aparezca aparte del código del producto, la cantidad del último movimiento que hubo(entrada ó salida), fecha de ese último movimiento, y la cantidad actual que queda en el almacén (es decir las sumas de todas las entradas menos la suma de todas las salidas)?

Llevo días intentando encontrarla pero no puedo :(

Muchas gracias de antemano y un gran saludo.
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

RE:¿Es posible esta consulta?

Publicado por Dani (10 intervenciones) el 09/04/2010 10:03:35
Sí que se puede aunque seguramente vaya a ser muy lenta la consulta dependiendo del número de registros que tengas. La consulta sería algo así como:

Supongo que tu tabla se llama Stocks

select distinct s.codigoProducto, e.fUltMov, s.Canttidad, e.Existencias
from stocks s left join
(select codigoProducto,max(fechahora) fUltMov from stocks,sum(Cantidad) Existencias) e on s.codigoProducto=e.CodigoProducto and s.FechaHora=e.FechaHora

En la consulta con alias e, calculo las existencias a fecha de hoy y la fecha del último movimiento.
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