Si te entendí bien, una consulta optimizada sería así:
Código SQL
[-]
SELECT fecha,
COALESCE(SUM(CASE tipo WHEN 'PAGO' THEN importe END), 0) AS pagos,
COALESCE(SUM(CASE tipo WHEN 'COBRO' THEN importe END), 0) AS cobros,
SUM(COALESCE(CASE tipo WHEN 'COBRO' THEN importe END, 0) -
COALESCE(CASE tipo WHEN 'PAGO' THEN importe END, 0)) AS diferencia
FROM tabla GROUP BY fecha
Sólo asegurate de tener un índice sobre el campo fecha.
Saludos