Hola a todos. De nuevo busco vuestro consejo para intentar optimizar una consulta que me muestra varios campos relacionados con el stock de un almacén.
Digamos que tengo una tabla como la siguiente, y quiero obtener el stock, la cantidad entregada, y las salidas.
El resultado de la consulta debería devolverme esto:
Stock --> 7
Entegado --> 8
Salidas --> 1
Y la sentencia que uso es esta:
SELECT
gen.Producto,
gen.Descripcion,
COALESCE(SUM(st.Cantidad), 0) AS Stock,
Entregado = (SELECT COALESCE(SUM(ent.Cantidad), 0) FROM [ALMACEN_Importar_productos] ent WHERE ent.Producto = gen.Producto AND ent.Almacen = 'verde' AND ent.Positivo = 1),
Salidas = -(SELECT COALESCE(SUM(sal.Cantidad), 0) FROM [ALMACEN_Importar_productos] sal WHERE sal.Producto = gen.Producto AND sal.Almacen = 'verde' AND sal.Positivo = 0)
FROM [ALMACEN_Importar_productos] gen
WHERE gen.Almacen = 'verde'
GROUP BY gen.Producto, gen.Descripcion
La sentencia funciona, pero quisiera informarme sobre si hay una forma mejor, más elegante o más rápida de obtener los datos.
Muchas gracias a todos y un saludo.