Muy buena!
Lo habia solucionado asi:
Código:
select distinct fchpago_051, idmodulo_051 from T
where not exists
(select * from T
where idmodulo_051 = X and fchpago_051 is not null)
and idmodulo_051 = X
pero lo tuyo es sin duda una solucion muchisimo mejor! (para empezar porque me permite hacer la vista :P )