Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/05/2016, 12:22
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: SUMAR Campos de distintas Tablas

Ok...
¿Has tenido en cuenta que una consulta con tal cantidad de LEFT JOINs puede producir resultado inconsistentes, si devuelve el mismo registro relacionado con mas de una condición?
Los LEFT JOIN deben ser usados con cuidado porque en consultas con múltiples tablas tienen el potencial de generar relaciones en estrella, y eso replica datos en diferentes registros de la tabla de resultados. Esto finalmente podría causar que el mismo dato sse sume más de una vez en determinadas condiciones.

Antes de seguir adelante te recomiendo sacar una muestra del resultado de la query base, sin sumar ni agrupar, y asegurarte de que los datos que sumas no se estén repitiendo. Donde se repitan casos ente registros, es donde la query está siendo mal relacionada:
Código SQL:
Ver original
  1. SELECT
  2.     mtd.jc_metas_fecha,
  3.     mtd.jc_metas_montol,
  4.     sg.seg_valor_venta,
  5.     sps.seg_pap_valor_venta
  6. FROM
  7.     metas mt
  8.         LEFT JOIN
  9.     metas_detalles mtd ON mtd.jc_meta_id = mt.jc_meta_id
  10.         LEFT JOIN
  11.     unidad_negocio und ON und.jc_unidad_negocio_id = mtd.jc_unidad_negocio_id
  12.         LEFT JOIN
  13.     seg_pap sp ON sp.jc_unidad_negocio_id = mtd.jc_unidad_negocio_id
  14.         AND YEAR(sp.seg_pap_fecha_ultimo_contac) = YEAR(mtd.jc_metas_fecha)
  15.         AND MONTH(sp.seg_pap_fecha_ultimo_contac) = MONTH(mtd.jc_metas_fecha)
  16.         AND sp.jc_unidad_negocio_id = 6
  17.         LEFT JOIN
  18.     seg_pap_servicio sps ON sp.seg_pap_id = sps.seg_pap_id
  19.         LEFT JOIN
  20.     seg_comercial sg ON sg.jc_unidad_negocio_id = mtd.jc_unidad_negocio_id
  21.         AND sg.jc_unidad_negocio_id IN (5 , 1)
  22.         AND YEAR(sg.seg_fecha_ultimo_contac) = YEAR(mtd.jc_metas_fecha)
  23.         AND MONTH(sg.seg_fecha_ultimo_contac) = MONTH(mtd.jc_metas_fecha)
  24. WHERE
  25.     mtd.jc_unidad_negocio_id IN (6 , 5, 1)
Y si: TE estoy diciendo que analices el resultado A MANO.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)