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 originalSELECT
mtd.jc_metas_fecha,
mtd.jc_metas_montol,
sg.seg_valor_venta,
sps.seg_pap_valor_venta
FROM
metas mt
LEFT JOIN
metas_detalles mtd ON mtd.jc_meta_id = mt.jc_meta_id
LEFT JOIN
unidad_negocio und ON und.jc_unidad_negocio_id = mtd.jc_unidad_negocio_id
LEFT JOIN
seg_pap sp ON sp.jc_unidad_negocio_id = mtd.jc_unidad_negocio_id
AND YEAR(sp.seg_pap_fecha_ultimo_contac) = YEAR(mtd.jc_metas_fecha)
AND MONTH(sp.seg_pap_fecha_ultimo_contac) = MONTH(mtd.jc_metas_fecha)
AND sp.jc_unidad_negocio_id = 6
LEFT JOIN
seg_pap_servicio sps ON sp.seg_pap_id = sps.seg_pap_id
LEFT JOIN
seg_comercial sg ON sg.jc_unidad_negocio_id = mtd.jc_unidad_negocio_id
AND sg.jc_unidad_negocio_id IN (5 , 1)
AND YEAR(sg.seg_fecha_ultimo_contac) = YEAR(mtd.jc_metas_fecha)
AND MONTH(sg.seg_fecha_ultimo_contac) = MONTH(mtd.jc_metas_fecha)
WHERE
mtd.jc_unidad_negocio_id IN (6 , 5, 1)
Y si: TE estoy diciendo que analices el resultado A MANO.