Conversation with Merlin [email protected] · Wed Dec 06 2023

Exercice 2: (SQL - 16 points) Soit la base de données BANQUE contenant les tables suivantes : AGENCE (Num Agence, Nom, Ville, Actif) // << Actif » représente l'argent disponible dans l'agence CLIENT (Num Client, Nom, Prenom, Ville) COMPTE (Num Compte, #Num_Agence, #Num_Client, Solde) XEMPRUNT (Num Emprunt, #Num_Agence, #Num Client, Montant) Exprimer en SQL les requêtes suivantes :

  1. Donner les numéros de compte qui ont un solde plus grand que le compte dont le numéro est << 20 >>.
  2. Les clients n'ayant pas de compte dans la même agence que «< Mohamed Ben Salah >>.
  3. Les agences ayant un actif plus élevé que toutes les agences de << Sousse >>.
  4. Le solde moyen des comptes clients, pour chaque agence dont le solde moyen est supérieur à
  5. Le nombre de clients de l'agence dont le nom est "BanqueSousse" dont le champ ville (des clients) n'est pas renseignée (vide) dans la relation CLIENT.
  6. Les clients ayant un compte dont le solde est supérieur à la somme totale de tous les actifs des agences de «< Sousse >>.
  7. Les clients dont la somme du solde de tous les comptes est inférieure à l'actif de chaque agence. 8. Les clients ayant un compte dans toutes les agences de «< Sousse >>.

Pour répondre à ces requêtes SQL, je vais écrire leses en me basant sur les relations fournies entre les tables AGENCE, CLIENT, COMPTE et XEMPRUNT de la base de données BANQUE.

  1. Donner les numéros de compte qui ont solde plus grand que le compte dont le numéro est << 20 >>.
SELECT Num_Compte FROM COMPTE WHERE Solde > ( SELECT Solde FROM COMP WHERE Num_Compte = '20' );
  1. Les clients'ayant pas de compte dans la même agence que « Mohamed Ben Salah ».
SELECT DISTINCT Num_Client,, Prenom FROM CLIENT WHERE Num_Client NOT IN ( SELECT c.Num FROM CLIENT c JOIN COMPTE co ON c.Num_Client = co.Num_Client AGENCE a ON co.Num_Agence = a.Num_A WHERE a.Num_Agence IN ( SELECT Num_A FROM COMPTE co JOIN CLIENT cl ON co.Num_Client = cl.Num_Client WHERE clom = 'Mohamed' AND cl.Prenom = 'Ben Salah' )
  1. Les agences ayant un actif plus élevé que toutes les agences de « Sousse ».
SELECT Num_Agence, Nom FROM AGENCE a1 WHERE Actif ALL ( SELECT Actif FROM AGENCE WHERE Ville = 'Sousse' );
  1. Le solde moyen deses clients, pour chaque agence dont le solde moyen est supérieur à .
SELECT Num_Agence, AVG(Solde) AS Moyenne_SoldesFROM COMPTE GROUP BY Num_Agence HAVING AVG(Solde) > 10000; ``5. Le nombre de clients de l'agence dont le nom est "BanqueSousse" dont le champ ville (des clients) n'est pas renigné (vide) dans la relation CLIENT. ```sql SELECT COUNT(*) AS_Clients_Ville_Vide FROM CLIENT c JOIN COMPTE co ON c.Num_Client co.Num_Client JOIN AGENCE a ON co.Num_A = a.Num_Agence WHERE a.Nom = 'BanqueSousse' AND (c.Ville IS NULL OR c.Ville = '');
  1. Les ayant un compte dont le solde est supérieur à la somme totale de tous les actifs agences de « Sousse ».
SELECT DISTINCT Num_Client FROM COMPTE WHERE Sol > ( SELECT SUM(Actif) FROM AG WHERE Ville =Sousse' );
  1. Les clients dont la somme du solde de tous les comptes est inférieure à l'if de chaque agence.
SELECT Num_Client FROM c WHERE ( SELECT SUM(co.Solde) FROM COMPTE co WHERE co.Num_Client = c.Num_Client ) < ALL SELECT Actif FROM AGENCE );
  1. Les clients un compte dans toutes les agences de « Sousse ».
SELECT Num_Client FROM CLIENT c WHERE EXISTS ( SELECT * FROM AGENCE WHERE = 'Sousse' AND Num_Agence NOT IN ( SELECT co.Num_Agence FROM COMPTE co WHERE co.Num_Client c.Num_Client ) );

Chaque requ SQL doit être exécutée dans l'environnement de base de données approprié. De plus, si la syntaxe spécifique à l'environ nécessite des ajustements, ces commandes peuvent nécessiter une légère modification pour fonctionner comme prévu.