pode ser assim:
select cliente, nome, fone from clientes where cliente not in (
select cliente from compras where
data >= :datainicial and data <= :datafinal and produto = :produto)
é claro q se vc passasse as tabelas de como vc modelou seria mais facil.