SQL - Necesito ayuda para calcular el stock!!!

 
Vista:

Necesito ayuda para calcular el stock!!!

Publicado por Idoya (2 intervenciones) el 25/04/2001 10:57:52
Hola!! Tengo un problema: existen dos tablas, una de lineas de albarán de compra y otra de líneas de albarán de venta. Necesito sacar el stock de un artículo a una fecha, es decir, desde el 1-1-2001 por ejemplo, hasta hoy, 25-4-2001. Como consecuencia de eso tengo que recorrerme las dos tablas e ir mirando el campo 'articulo' de cada registro. Si el albarán es de compra, se suma y si es de venta, se resta. La sentencia que intento ejecutar es la siguiente:
Select art.cod, sum(len.can)-sum(lal.can) as stock from ART
inner join LEN on (len.art=art.cod)
inner join LAL on (lal.art=art.cod)
where (art.cod=180) and (len.fec between '01,01,2001' and '04,25,2001') and (lal.fec between '01,01,2001' and '04,25,2001'),
donde LEN es la tabla de líneas de albarán de compra, LAL son las de venta y ART la tabla de artículos.
Pero esto no funciona porque realiza las suma
de los de compra tantas veces como número de registros haya encontrado en las líneas de venta cuyo campo artículo sea igual a 180 (código de artículo). De la misma manera ocurre con las líneas de albarán de venta, es decir, se suman tantas veces como registros haya encontrado en los de compra.
No sé si me habré explicado bien pero necesito ayuda urgente. Muchísimas gracias por todo, 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

RE:Necesito ayuda para calcular el stock!!!

Publicado por Angel (20 intervenciones) el 26/04/2001 11:21:41
Hola....

Prueba a hacerlo de la siguiente forma:

Select art.cod,
(select sum(len.can) from LEN where len.art=art.cod and len.fec between '01,01,2001' and '04,25,2001')
-
(sum(lal.can) as stock from LAL where lal.art=art.cod and lal.fec between '01,01,2001' and '04,25,2001')
from ART
where art.cod=180

Suerte...
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:Necesito ayuda para calcular el stock!!!

Publicado por Angel (20 intervenciones) el 26/04/2001 11:22:01
Hola....

Prueba a hacerlo de la siguiente forma:

Select art.cod,
(select sum(len.can) from LEN where len.art=art.cod and len.fec between '01,01,2001' and '04,25,2001')
-
(select sum(lal.can) as stock from LAL where lal.art=art.cod and lal.fec between '01,01,2001' and '04,25,2001')
from ART
where art.cod=180

Suerte...
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