Por si a alguien le sirve, los datos sacados de contabilidad funcionan correctamente con la siguiente consulta:
<![CDATA[SELECT
empresa.nombre,
empresa.cifnif,
empresa.direccion,
empresa.codpostal,
empresa.ciudad,
proveedores.cifnif as provcifnif,
proveedores.nombre as nombreprov,
proveedores.codproveedor,
dirproveedores.direccion as provdireccion,
dirproveedores.ciudad as provciudad,
dirproveedores.codpostal as provcp,
dirproveedores.provincia as provprovincia,
co_asientos.codejercicio,
sum(case when Extract(month from co_asientos.fecha) >= 1 AND Extract(month from co_asientos.fecha) <= 3 then (pprov.haber-pprov.debe) else 0 end) as T1,
sum(case when Extract(month from co_asientos.fecha) >= 4 AND Extract(month from co_asientos.fecha) <= 6 then (pprov.haber-pprov.debe) else 0 end) as T2,
sum(case when Extract(month from co_asientos.fecha) >= 7 AND Extract(month from co_asientos.fecha) <= 9 then (pprov.haber-pprov.debe) else 0 end) as T3,
sum(case when Extract(month from co_asientos.fecha) >= 10 AND Extract(month from co_asientos.fecha) <= 12 then (pprov.haber-pprov.debe) else 0 end) as T4,
sum (pprov.haber-pprov.debe) as total
FROM empresa, co_partidas pprov
INNER JOIN co_subcuentasprov scp ON pprov.idsubcuenta = scp.idsubcuenta
INNER JOIN proveedores ON scp.codproveedor = proveedores.codproveedor
INNER JOIN co_asientos ON pprov.idasiento = co_asientos.idasiento
INNER JOIN dirproveedores ON proveedores.codproveedor = dirproveedores.codproveedor AND direccionppal = true
INNER JOIN paises ON dirproveedores.codpais = paises.codpais
WHERE paises.codiso = 'ES' AND $P!{WHERE} AND co_asientos.tipodocumento = 'Factura de proveedor'
GROUP BY co_asientos.codejercicio, proveedores.codproveedor, empresa.nombre, empresa.cifnif, empresa.direccion, empresa.codpostal, empresa.ciudad, proveedores.cifnif, proveedores.nombre,dirproveedores.direccion,dirproveedores.ciudad,dirproveedores.codpostal,dirproveedores.provincia
HAVING SUM(pprov.haber - pprov.debe) >= $P!{ORDERBY}
ORDER BY proveedores.codproveedor]]>
Un saludo