Ayuda con tabla

Hola, nuevamente aquí solicitando tu sabiduría...
Tengo la siguiente tabla:
CREATE TABLE `cuotas` (
  `idconvenio` bigint(20) NOT NULL auto_increment,
  `idnotavta` bigint(20) NOT NULL,
  `numcuota` int(11) NOT NULL,
  `fec_venc` date NOT NULL,
  `cap_insol` decimal(10,0) NOT NULL,
  `val_cuota` decimal(10,0) NOT NULL,
  `int_cuota` decimal(10,0) NOT NULL,
  `fec_pago` date NOT NULL,
  `cap_pagado` decimal(10,0) NOT NULL,
  `deuda_resi` decimal(10,0) NOT NULL,
  `diasmora` int(11) NOT NULL,
  `interes` int(11) NOT NULL,
  `total_pago` decimal(10,0) NOT NULL,
  `id_status_cuota` bigint(20) NOT NULL,
  PRIMARY KEY  (`idconvenio`),
  KEY `idnotavta` (`idnotavta`),
  KEY `id_status_cuota` (`id_status_cuota`),
  CONSTRAINT `cuotas_ibfk_1` FOREIGN KEY (`idnotavta`) REFERENCES `notavta` (`idnotavta`),
  CONSTRAINT `cuotas_ibfk_2` FOREIGN KEY (`id_status_cuota`) REFERENCES `estadocuota` (`id_status_cuota`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
El problema es el siguiente. Necesito saber como consultar las cuotas atrasadas del cliente, por ejemplos, personas que tienen 3 cuotas o más de 6 cuotas atrasadas... A mi entender tendría que tomar en cuenta la fecha de pago de cada cuota con la fecha de vencimiento (o estoy mal).. Pero no se como realizar el proceso... ¿Puedes ayudarme?
Atenta a tus comentarios.

2 respuestas

Respuesta
1
La mera consulta sql seria algo como
SELECT * FROM cuotas WHERE fecha_pago = '0000-00-00' 
para consultar las cuotas vencidas de todos los clientes, si necesitas saber la cuota vencida por cliente seria algo como:
SELECT idnotavta, count(*) as num_cuotas FROM cuotas WHERE fecha_pago = '0000-00-00'
group by idnotavta having num_cuotas >= 3
esto es, suponiendo que idnotavta es el id del cliente.
Respuesta
1
¿Cuál es el valor por defecto de la columna fec_pago?
Debes ponerle alguno, aunque sea '0000-00-00', porque si esta a NULL no vas a poder hacer agrupaciones ni cuentas.
Cambia eso (y actualiza todas las columnas que estén a NULL) e intenta hacer una consulta
parecido a esto:
SELECT Idnotavta, count(*) WHERE fec_pago = '0000-00-00' GROUP BY idnotavta HAVING count(*) >= 3
Es una consulta sencilla, pero tienes que aprender a usar GROUP BY y HAVING si quieres hacerlo bien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas