Ver Mensaje Individual
  #8 (permalink)  
Antiguo 26/04/2011, 08:12
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años, 2 meses
Puntos: 447
Respuesta: No mostrar registros duplicados

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 original
  1. SELECT T1.* FROM TuTabla T1 INNER JOIN
  2. (
  3. SELECT id, fac, SUM(monto) total FROM Tutabla
  4. GROUP BY id, fac
  5. HAVING SUM(monto) != 0
  6. ) T2 ON T1.id = T2.id AND T1.fac = T2.fac
  7.  
  8. o
  9.  
  10. SELECT T1.* FROM TuTabla T1 INNER JOIN
  11. (
  12. SELECT id, fac FROM Tutabla
  13. GROUP BY id, fac
  14. HAVING COUNT(*) = 1
  15. ) 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.