Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/10/2013, 22:43
ggpolendo
 
Fecha de Ingreso: octubre-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Problema con INNERJOIN sumatoria no correcta.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No puedes usar una tabla de compras para realizar un JOIN contra una tabla ventas. SOn conceptos incompatibles. Ese tipo de resumen de movimiento se realiza de otro modo.
Por lo pronto, no puedes hacer un resumen de compras y ventas si usar la tabla productos, porque que tengas compras en un determinado período, no implica necesariamente que tengas ventas de ese producto, para el mismo período, y viceversa.
Ese tipo de resumenes se realiza, como dije, con la tabla Productos pero por medio de subconsultas donde obtienes los totales de cada concepto por separado:
Código MySQL:
Ver original
  1. SELECT t1.idarticulo, totalVentas, totalCompras, (totalCompras - totalVentas) SaldoExistencia
  2.     (SELECT p.idarticulo, SUM(vc.cantidad) totalVentas
  3.     FROM productos p LEFT JOIN ventas_corte vc ON p.idarticulo = vc.idarticulo
  4.     GROUP BY p.idarticulo) T1
  5.     INNER JOIN
  6.     (SELECT p.idarticulo,  SUM(compras.cantidad) TotalCompras
  7.     FROM FROM productos p LEFT JOIN compras c ON p.idarticulo = c.idarticulo
  8.     GROUP BY p.idarticulo) T2 ON T1.idarticulo = T2.idarticulo
  9. ORDER BY t1.idarticulo
¿Se entiende?
Este tema se ha tratado ya varias veces, y es un error de concepto muy habitual entre los que se inician.

Muchas gracias gnzsoloyo, son conceptos de join que apenas voy comprendiendo y gracias a ti acabo de terminar de comprender , te comento que si utilizo una tabla productos(articulos) y he cazado todas las tablas y ahora toda la consulta da el resultado tal cual lo necesito,muchas gracias de nuevo.