Hola israbart:
Hay un detalle con la consulta que te propone el compañero gnzsoloyo, y es el hecho de que las facturas "repetidas" no tienen la misma fecha ni el mismo saldo. A primera vista creo que marcaría error porque el campo monto no está incluido en el group by sin tener asignada una función de agrupación. Por la parte de las fechas distintas, al estar agrupando también por este campo entonces no obtendrá los resultados correctos.
Me queda una duda: si sólo te interesa "contar" los registros repetidos o si lo que necesitas es obtener aquellas facturas que no estén "canceladas", es decir, veo que cada monto tiene su respectivo registro con monto negativo, de tal manera que se obtendría un saldo = 0 si se suman los saldos, puedes intentar con lo siguiente:
Código SQL:
Ver originalSELECT T1.* FROM TuTabla T1 INNER JOIN
(
SELECT id, fac, SUM(monto) total FROM Tutabla
GROUP BY id, fac
HAVING SUM(monto) != 0
) T2 ON T1.id = T2.id AND T1.fac = T2.fac
o
SELECT T1.* FROM TuTabla T1 INNER JOIN
(
SELECT id, fac FROM Tutabla
GROUP BY id, fac
HAVING COUNT(*) = 1
) T2 ON T1.id = T2.id AND T1.fac = T2.fac
Con los datos que pones de ejemplo ambas consultas deberían regresar el mismo resultado.
En cuanto a la consulta del compañero Libra, la consulta también funciona con los datos de ejemplo, aunque no termino por entender la lógica que está siguiendo para obtener el resultado, espero también la explicación que te pueda dar.
Saludos
Leo.