Ciao,
La query proposta da gibra non va bene o meglio va ampliata altrimenti otterresti sia il cliente 2 sia il 3 ma il 3 non lo vuoi perche' ha ancora un ordine da evadere.
La query da scrivere e' grosso modo cosi :
SELECT o.idCliente
FROM Ordini o
WHERE o.evaso = 'si' and o.idCliente NOT IN (
SELECT o1.idCliente
FROM Ordini o1
WHERE o1.evaso = 'no')
In pratica che fa la query.
ti restituisce l'id del cliente che ha ordini evasi il quale cliente pero non ha ordini ancora da evadere.
La sottoquery restituisce l'id dei clienti che hanno ordini ancora da evadere,
nella query principale tu prendi clienti con ordine evaso e che non siano nella sottoquery ossia non abbiano ordini ancora da evadere.
PS
Io ho fatto tutto usando solo la tabella ordini perche' ho restituito solo idCliente se volessi ad esempio anche il nome del cliente devi mettere in join le tabelle.