Mi duda es la siguiente: Tengo 4 Tablas
Tabla Ventas con los campos
codigo,cantidad,fecha,unitario
Tabla Productos
codigo, nombre
Tabla Almacen
codigo, cantidad, fecha
Tabla Pedido
codigo, solicitado, fecha
Necesito hacer un sistema de pedidos para abastecer un almacen dependiendo de los faltantes. Al momento de hacer la sintaxis sql la cual explico
Relaciono el codigo de almacen con el codigo de productos donde está almacenado el nombre del producto, luego relaciono la tabla pedido con la tabla productos para que me muestre la cantidad de productos que solicité como pedido para abastecer. y al final relacione la tabla ventas para que me muestre la cantidad de productos que
se han vendido de cada uno en un rango de fecha determinado para que en base a las ventas que haya tenido cada producto solicitar un aproximado para compra.
Agrupo por codigo de almacen porque un mismo producto lo tengo insertado varias veces dependiendo del costo que haya tenido por las variaciones de precios.
y lo agrupo también por codigo de ventas porque en la tabla ventas existe varias veces el mismo producto pero con fechas de ventas diferentes.
Código SQL:
Ver original
SELECT almacen.codigo, SUM(ventas.cantidad) AS can, SUM(almacen.cantidad) AS cantidadd, productos.producto, pedido.solicitado FROM (almacen INNER JOIN productos ON almacen.codigo=productos.codigo) LEFT JOIN pedido ON almacen.codigo=pedido.codigo AND DATE_FORMAT(pedido.fecha, '%Y-%m-%d')='$fecha' LEFT JOIN ventas ON almacen.codigo=ventas.codigo AND DATE_FORMAT(ventas.fecha, '%Y-%m-%d') BETWEEN '$fechahorapas' AND '$fecha' GROUP BY almacen.codigo, ventas.codigo ORDER BY productos.producto
En el resultado me da por ejemplo
El único problema es que en ventas de Paracetamol solo son 29 y no 58. y no se como hacerle para que me de realmente los 29 y no me los duplique.
En este ejemplo de una parte del código si me da el valor correcto
Código SQL:
Ver original
SELECT codigo, SUM(cantidad) AS can, fecha FROM ventas WHERE DATE_FORMAT(ventas.fecha, '%Y-%m-%d') BETWEEN '$fechahorapas' AND '$fecha' GROUP BY codigo
Pero necesito unir todo el codigo.
Le agradezco de antemano todas las ideas que me puedan proporcionar