Sí me lo duplica, porque los pagos son al expediente, no por contrario.
Si hay 50€ pagados a un expediente con 3 contrarios, me devuelve:
contrario1 50€
contrario2 50€
contrario3 50€
Y debería devolver solo: contrario1 50€ (o cualquier contrario, eso no me preocupa)
Con tu consulta me salía lo mismo que en mi primer ejemplo, pero me dió una idea y parece que me salió así:
Código SQL:
Ver originalSELECT expedien.nexp,linpag.descripcio,linpag.pagosa,SUM(linpag.pagos_e),contra.nombcon
FROM expedien
LEFT JOIN pagos ON expedien.nexp=pagos.nexp
LEFT JOIN linpag ON pagos.npagos=linpag.npagos
LEFT JOIN (SELECT nexp, ncon FROM conexp GROUP BY nexp) AS nueva ON (expedien.nexp=nueva.nexp)
LEFT JOIN contra ON nueva.ncon=contra.ncon
WHERE (linpag.fecha > CAST("2016/01/01" AS DATE))
GROUP BY linpag.pagosa, contra.nombcon
[/CODE]