1. Liste des agences ayant des comptes-clients
SELECT DISTINCT Nom FROM AGENCE, COMPTE WHERE AGENCE.Num_Agence = COMPTE.Num_Agence
2. Clients ayant un compte à “Agadir”
SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE WHERE AGENCE.Num_Agence = COMPTE.Num_Agence AND CLIENT.Num_Client = COMPTE.Num_Client AND AGENCE.Ville = “Agadir”
3. Clients ayant un compte ou un emprunt à “Agadir”
SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE WHERE CLIENT.Num_Client = COMPTE.Num_Client AND AGENCE.Num_Agence = COMPTE.Num_Agence AND AGENCE.Ville = “Agadir” UNION SELECT CLIENT.Nom FROM CLIENT, AGENCE, EMPRUNT WHERE CLIENT.Num_Client = EMPRUNT.Num_Client AND AGENCE.Num_Agence = EMPRUNT.Num_Agence AND AGENCE.Ville = “Agadir”
4. Clients ayant un compte et un emprunt à “Agadir”
SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE WHERE CLIENT.Num_Client = COMPTE.Num_Client AND AGENCE.Num_Agence = COMPTE.Num_Agence AND AGENCE.Ville = “Agadir” intersect SELECT CLIENT.Nom FROM CLIENT, AGENCE, EMPRUNT WHERE CLIENT.Num_Client = EMPRUNT.Num_Client AND AGENCE.Num_Agence = EMPRUNT.Num_Agence AND AGENCE.Ville = “Agadir”
5. Clients ayant un compte et pas d’emprunt à “Agadir”
SELECT CLIENT.Nom FROM CLIENT, AGENCE, COMPTE WHERE CLIENT.Num_Client = COMPTE.Num_Client AND AGENCE.Num_Agence = COMPTE.Num_Agence AND AGENCE.Ville = “Agadir” minus SELECT CLIENT.Nom FROM CLIENT, AGENCE, EMPRUNT WHERE CLIENT.Num_Client = EMPRUNT.Num_Client AND AGENCE.Num_Agence = EMPRUNT.Num_Agence AND AGENCE.Ville = “Agadir”
6. Clients ayant un compte et nom de la ville où ils habitent
Première solution : SELECT Nom, Ville FROM CLIENT, COMPTE WHERE CLIENT.Num_Client = COMPTE. Num_Client Deuxième solution : SELECT Nom, Ville FROM CLIENT WHERE Num_Client IN ( SELECT Num_Client FROM COMPTE)
7. Clients ayant un compte à “ wafa-agadir ” et nom de la ville où ils habitent
Première solution :
SELECT CLIENT.Nom, CLIENT.Ville FROM CLIENT, AGENCE, COMPTE WHERE CLIENT.Num_Client = COMPTE. Num_Client AND AGENCE.Num_Agence = COMPTE.Num_Agence AND AGENCE.Nom = “ wafa-agadir ”
Deuxième solution :
SELECT Nom, Ville FROM CLIENT WHERE Num_Client IN ( SELECT Num_Client FROM COMPTE WHERE Num_Agence IN ( SELECT Num_Agence FROM AGENCE WHERE Nom = “wafa-agadir”))
8. Clients ayant un compte dans une agence où “Ahmed” a un compte
Première solution :
SELECT Nom FROM CLIENT, COMPTE WHERE CLIENT.Num_Client = COMPTE.Num_Client AND Num_Agence IN ( SELECT Num_Agence FROM CLIENT, COMPTE WHERE CLIENT.Num_Client = COMPTE.Num_Client AND Nom = “Ahmed”)
Deuxième solution :
SELECT Nom FROM CLIENT WHERE Num_Client IN ( SELECT Num_Client FROM COMPTE WHERE Num_Agence IN ( SELECT Num_Agence FROM CLIENT, COMPTE WHERE CLIENT.Num_Client = COMPTE.Num_Client AND Nom = “Ahmed”))
9. Agences ayant un actif plus élevé que toute agence de « AAAA »
SELECT Nom FROM AGENCE WHERE Actif > ALL ( SELECT Actif FROM AGENCE WHERE Ville = “AAAA”)
11. Clients ayant un compte dans au-moins une agence d“AAAA”
Première solution :
SELECT Nom FROM CLIENT WHERE Num_Client IN ( SELECT Num_Client FROM COMPTE WHERE Num_Agence IN ( SELECT Num_Agence FROM AGENCE WHERE Ville = “AAAA”))
Deuxième solution :
SELECT CLIENT.Nom FROM CLIENT, COMPTE, AGENCE WHERE CLIENT.Num_Client = COMPTE.Num_Client AND COMPTE.Num_Agence = AGENCE.Num_Agence AND AGENCE.Ville = “AAAA”
12. Emprunteurs de l »‘ »agence “Grédit-Agadir” classés par ordre alphabétique
SELECT Nom FROM CLIENT WHERE Num_Client IN ( SELECT Num_Client FROM EMPRUNT WHERE Num_Agence IN ( SELECT Num_Agence FROM AGENCE WHERE Nom = “Grédit-Agadir”)) ORDER BY Nom
13. Solde moyen des comptes-clients de chaque agence
SELECT Nom, avg(Solde) FROM AGENCE, COMPTE WHERE AGENCE.Num_Agence = COMPTE.Num_Agence GROUP BY Nom
14. Solde moyen des comptes-clients des agences dont le solde moyen est > “10 000”
SELECT Nom, avg(Solde) FROM AGENCE, COMPTE WHERE AGENCE.Num_Agence = COMPTE.Num_Agence GROUP BY Nom HAVING avg(Solde) > 10000
15. Nombre de clients habitant “ Safi ”
SELECT count(*) FROM CLIENT WHERE Ville = “Safi”
16. Nombre de clients de l’agence “CETELEM ” n’ayant pas leur adresse dans la relation CLIENT
Première solution :
SELECT count(*) FROM CLIENT WHERE Ville = NULL AND Num_Client IN ( SELECT Num_Client FROM COMPTE WHERE Num_Agence IN ( SELECT Num_Agence FROM AGENCE WHERE Nom = “CETELEM ”))
Deuxième solution :
SELECT count(*) FROM CLIENT, COMPTE, AGENCE WHERE Ville = NULL AND CLIENT.Num_Client = COMPTE.Num_Client AND COMPTE.Num_Agence = AGENCE.Num_Agence AND AGENCE.Nom = “CETELEM ”
17. Insérer le n-uplet < leila, Agadir > dans la relation CLIENT
INSERT INTO CLIENT VALUES (130765, “leila”, “Agadir”)
18. Diminuer l’emprunt de tous les clients habitant “Tanger” de “5%”