Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/03/2018, 13:41
Avatar de sebandrescc2
sebandrescc2
 
Fecha de Ingreso: diciembre-2012
Mensajes: 45
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta El left join me duplica los datos

Hola que tal,

tengo la siguiente query
Código MySQL:
Ver original
  1. SELECT s.id_stock, s.oc_id, s.id_bodega, p.nom_prov, c.modelo, b.nombre, oc.status, c.id_cat, SUM(s.cantidad) - COALESCE(SUM(sv.cant_ser), 0) cantidad
  2.         FROM stock s
  3.         LEFT JOIN
  4.             proveedores p
  5.             ON (s.id_prov = p.id_prov)
  6.         LEFT JOIN
  7.             cat c
  8.             ON (s.cat_id = c.id_cat)
  9.         LEFT JOIN
  10.             bodega b
  11.             ON (s.id_bodega = b.id_bodega)
  12.         LEFT JOIN oc
  13.             ON (s.oc_id = oc.oc_id)
  14.         LEFT JOIN
  15.             servicios sv
  16.             ON (s.id_stock = sv.id_stock)
  17.         WHERE oc.status = 'EN BODEGA'
  18.         GROUP BY s.codigo
  19.         ORDER BY id_stock ASC

Traigo información de varias tablas, pero lo principal del asunto son 2 tablas y mi problema es el siguiente.

Un SUM de s.cantidad, agrupada por s.codigo, le resto también un SUM de sv.cant_ser para obtener una cantidad

El problema es que si tengo mas de 1 fila en sv.cant_ser, el s.cantidad me devuelve una suma errónea.

No sé si es un error del LEFT JOIN o no me está agrupando correctamente uno de los campos. Aquí van de ejemplo las 2 tablas involucradas

Servicios sv. Acá la suma por codigo es correcta


Stock s. La suma del codigo que se repite en esta tabla debería ser 6, pero devuelve 10


Cualquier ayuda es de utilidad.
__________________
Aquí voy a escribir mi firma