Salut tout le monde!

Dans l'approche d'un examen, j'essaie de me préparer avec des exercices.

J'essaie en vain de résoudre l'un d'eux... J'ai tenté mille tournures différentes mais je n'y parvient pas...

Voici la question:

Quels clients (nom, prénom) ayant loué ont toujours obtenu une voiture de la gamme désirée?

et la base de données associée

VEHICULE(idVehicule, modele, gamme, dateAcquisition, kilometrage, agence)
AGENCE(idAgence, ville, dateOuverture, gerant)
CLIENT(idClient, nom, prenom, datePremiereLocation, dateDerniereLocation)
LOCATION(idVehicule, idClient, gammeDemandee, dateDebut, dateFin, agenceFin)

Je suis a peu près sûr que la solution réside dans un double NOT EXISTS, donc une division.

Voici l'une de mes requêtes

Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT NOM
FROM CLIENT C 
WHERE NOT EXISTS 
(SELECT * FROM LOCATION L
WHERE NOT EXISTS (SELECT * FROM VEHICULE V WHERE L.IDVEHICULE=V.IDVEHICULE AND C.IDCLIENT=L.IDCLIENT AND L.GAMMEDEMANDEE!=V.GAMME ));
Mais bon, ça ne donne évidemment rien.

Une idée ?
Merci d'avance.