Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/11/2015, 08:02
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Evitar datos repetidos en consulta

Estás creando una relación en estrella, que tiende a generar productos cartesianos.
La relación entre Préstamo y Cliente debería ser por INNER JOIN, no LEFT JOIN. Sólo tendría sentido un LEFT JOIN si existiesen prestamos por fuera de la cartera de clietnes... cosa bastante anormal.
Adem{ás no estas teniendo cuidado con el manejo de los nulos en las operaciones aritméticas. El NULL no es un dato, y si lo sumas a un valor cualquiera, o lo concatenas a una cadena de texto, el resultado es NULL.

Probemos así:
Código MySQL:
Ver original
  1.     C.cedula,
  2.     A.No_pago,  
  3.     A.fecha,  
  4.     P.No_cuotas,
  5.     P.valor_prestamo,
  6.     P.valor_cuotas,
  7.     P.saldo,
  8.     P.cuotas_pagadas,  
  9.     P.valor_cuotas,
  10.      P.saldo,  
  11.     (P.valor_prestamo - P.valor_cuotas - IFNULL(A.abono, 0)) total_saldo,
  12.     A.abono,
  13.     A.multa,
  14.      P.cedula,
  15.     DATEDIFF (CURDATE(), P.fecha ) cuota_por_pagar,
  16.     P.cuotas_pagadas,
  17.     C.nombre,
  18.     C.apellido1,
  19.     C.apellido2,
  20.     DATE_ADD( P.fecha, INTERVAL 30 DAY) dias_por_pagar
  21. FROM prestamos P
  22.     INNER JOIN clientes C ON  C.cedula = P.cedula
  23.     LEFT JOIN pagos A ON C.cedula = A.cedula
  24. WHERE P.saldo > 0  
  25. ORDER BY P.fecha ASC
  26. LIMIT $inicial,$cantidad;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)