Tu consulta me ayudo mucho, cambie algunas cositas para que quede como necesitaba.
Código SQL:
Ver originalSELECT
P.nombre paciente,
C.codcuenta,
C.debe,
CH.fecha,
DATEDIFF(CURDATE(), CH.fecha) dias
FROM
cuenta C
INNER JOIN pacientes P ON P.codpaciente = C.codpaciente
INNER JOIN
(SELECT codcuenta, MAX(fecha) fecha, estado, movimiento
FROM cuentahistoria
WHERE movimiento = 'E' AND estado = 'ALTA'
GROUP BY codcuenta) CH ON C.codcuenta = CH.codcuenta
WHERE
DATEDIFF(CURDATE(), CH.fecha) > 11 AND c.debe > 0
GROUP BY C.codcuenta
ORDER BY dias DESC;
movimiento = 'E' es la forma de saber si el movimiento es una entrega
Ahora el tema es: como hago para saber en esta misma consulta si un paciente con cuenta corriente no tiene entregas realizadas...
Pense utilizar un OR en datediff del where pero la verdad que no va