SQL - Reporte de inventarios

   
Vista:

Reporte de inventarios

Publicado por Alberto Valero (25 intervenciones) el 25/06/2009 21:02:35
Saludos,

Quisiera saber si me pueden ayudar con ese query, necesito que con una tabla de movimientos de inventarios se haga lo siguiente:

tabla mov inventarios:

fecha
producto inicial entradas salidas final

ej

25/06/2009 1 10 5 5 10
25/06/2009 2 5 2 3 4
26/06/2009 1 10 4 1 13
.................................................................................................

necesito un query que me saque la suma de esos productos por clave de un rango de fechas

ej de 25/06/2009 a26/06/2009


1 10 9 6 13
.. ... ......... .... .......
yo tengo este query pero no me los agrupa por clave sino por fecha? se supone que obtengo sumatoria de productos de tabla de inventario y en entradas y salidas hago un suquery de otras tablas de esos movimientos de esas claves y agrupo por clave sin embargo toma tantas claves tantas fechas halla!

SELECT mov_inventario.inv_clave_id, ISNULL(SUM(mov_inventario.inv_cantidad), 0) AS inicial,
ISNULL ((SELECT SUM(mov_cantidad) AS Expr1 FROM view_entradasinv WHERE (mov_clave_id = mov_inventario.inv_clave_id) AND (mov_fecha BETWEEN '6/22/2009 12:00:00 AM' AND '6/24/2009 9:51:01 AM')), 0) AS ENTRADAS,
ISNULL ((SELECT SUM(mov_cantidad) AS Expr1 FROM view_salidasinv WHERE (mov_clave_id = mov_inventario.inv_clave_id) AND (mov_fecha BETWEEN '6/22/2009 12:00:00 AM' AND '6/24/2009 9:51:01 AM')), 0) AS salidas,
ISNULL(mov_inventario.inv_cantidad, 0) + ISNULL ((SELECT SUM(mov_cantidad) AS Expr1 FROM view_entradasinv AS view_entradasinv_1 WHERE (mov_clave_id = mov_inventario.inv_clave_id) AND (mov_fecha BETWEEN '6/22/2009 12:00:00 AM' AND '6/24/2009 9:51:01 AM')), 0) - ISNULL ((SELECT SUM(mov_cantidad) AS Expr1 FROM view_salidasinv AS view_salidasinv_1 WHERE (mov_clave_id = mov_inventario.inv_clave_id) AND (mov_fecha BETWEEN '6/22/2009 12:00:00 AM' AND '6/24/2009 9:51:01 AM')), 0) AS final,
cat_producto.pro_nombre FROM mov_inventario LEFT OUTER JOIN cat_producto ON mov_inventario.inv_clave_id = cat_producto.pro_id LEFT OUTER JOIN cat_sucursal ON mov_inventario.inv_sucursal_id = cat_sucursal.suc_id WHERE (mov_inventario.inv_fecha BETWEEN '6/22/2009 12:00:00 AM' AND '6/24/2009 9:51:01 AM') group by inv_clave_id,pro_nombre,inv_cantidad
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:Reporte de inventarios

Publicado por DALSOM (197 intervenciones) el 06/07/2009 20:56:36
EN LAS FECHAS, UTILIZA VARIABLES. A LA FECHA INICIAL, TRUNCALA EN EL DIA, Y DEJA LA PARTE DEL TIME, VACIA.
A LA FECHA FINAL PONLE COMO 23:59:59.999 PARA QUE TE TOME EL DIA COMPLETO.

LO DE LOS JOINS, NO PUEDO VERLO BIEN,
PERO CREO QUE PUEDES HACER QUE LOS CAMPOS MONEY, SALGAN CON VALOR, PONIENDO EL ISNULL EN LA VISTA, Y TU QUERY SALDRA SIN TODOS ESOS ISNULL(), QUEDANDO MAS CLARO Y LEGIBLE.

SALUDOS,
DALSOM.
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