Hola
Como estan ?
Tengo una tabla donde esta toda la información del movimiento de artículos
de un inventario, asi:
Producto,Fecha,Tipo, Entrada, Salida,CostoEntradas,CostoSalidas
Ñ001,1/1/2007,ENT,100,0,1000000,0 (registro de entradas)
D1001,1/1/2007,SAL,0,10,0,100000 (registro de salidas)
D1001,2/2/2007,FCR,0,5,0,500000 (Registro de facturas)
D1001,2/2/2007,DFC,2,0,200000,0 (Registro de devolucion de facturas)
Necesito una consulta para ver el resumen de movimiento por producto, asi:
Producto,TotalEntradas,TotalSalidas,TotalCostoEntradas,TotalCostoSalidas,UnidadesVendidas,UnidadesDevolucionVentas
Cree una instrucción select utilizando un LEFT JOIN contra la misma tabla
para ver los totales de ventas:
SELECT T1.Producto,SUM(Entrada) as TotalEntradas,SUM( Salida) AS
TotalSalidas
,SUM(CostoEntradas) AS TotalCostoEntradas,SUM(CostoSalidas) AS
TotalCostoSalidas
,UnidadesVendidas,UnidadesDevolucionVentas
FROM Tabla1 AS T1 LEFT JOIN (SELECT Producto,SUM(Salida) AS
UnidadesVendidas,SUM(Entrada) AS UnidadesDevolucionVentas FROM Tabla1 WHERE
Tipo IN ('FCR','DFC')
GROUP BY Producto) AS T2 ON T1.Producto=T2.Producto
GROUP BY T1.Producto,UnidadesVendidas,UnidadesDevolucionVentas
Resultados:
D1001,102,15,1200000,600000,5,2
Debe mostrar todos los movimientos y adicionalmente los movimientos de
ventas solamente
La pregunta es:
Tiene más rendimiento este tipo de subconsultas, o crear una vista filtrando
las ventas ( WHERE Tipo IN ('FCR','DFC') )
y crear la instrucción SELECT uniendo la tabla con la vista ?
Espero me puedan dar una sugerencia.
Diego M Romero
Leer las respuestas