De lo que yo entiendo concluyo que la consulta debe ser asi:
Código SQL:
Ver originalSELECT fa.id,
SUM(nac.importe),
SUM(prov.importe),
fa.importe - SUM(nac.importe_primario) - SUM(prov.importe_primario)
FROM tabla1_facturas fa
LEFT JOIN (SELECT idfactura,
SUM(importe) importe,
SUM(importe_primario) importe_primario
FROM tabla2_impuestos_nacionales
GROUP BY idfactura) nac
ON fa.id = nac.idfactura
LEFT JOIN (SELECT idfactura,
SUM(importe) importe,
SUM(importe_primario) importe_primario
FROM tabla3_impuestos_provinciales
GROUP BY idfactura) prov
ON fa.id = prov.idfactura
GROUP BY fa.id
ORDER BY fa.id DESC
Como "regla del pulgar"- las columnas que aparecen en el Group By de tabla1_facturas deben aparecer tambien (en este caso) en los operdores On (del Left Join), para que cada combinacion de las columnas coincida correctamente.
Que es la clave primaria de tabla1_facturas?