Requêtes SQL

Bonjour,
je suis nouveau sur le forum jai un exercice de maison en sql sur lequel je souhaite avoir de l'assistance

Soit le schéma d’une Base de Données Relationnelle suivante :

	CLIENT (NumCli, NomCli, VilleCli)

	COMPTE (NumCpte, NumAg #, NumCli #, Solde)

	AGENCE (NumAg, NomAg, VilleAg, Actif)

	EMPRUNT (NumEmpr, NumAg #, NumCli #, Montant)

Voici des exemples d’enregistrement dans la Base de données :

	CLIENT (CL257, KOUADIO Georges, Cocody)
	COMPTE (CP217364, AG06, 10257, 35 000)
	AGENCE (AG06, Zone 5, ADJAME, 300 000)
	EMPRUNT (2458, AG06, CL257, 50 000)

III.	Travail à Faire

1)	Donner les scripts SQL de création des relations EMPRUNT et  AGENCE.

2)	Ecrire correctement les requêtes suivantes en langage SQL :

a)	Liste des Clients ayant un Compte ou un Emprunt à ‘MARCORY’.
b)	Liste des Clients ayant un Compte et pas d’Emprunt à ‘MARCORY’.
c)	Liste des Clients ayant un Compte dans au moins une Agence du ‘PLATEAU’.
d)	Liste des Agences ayant un actif plus élevé que toute Agence du ‘PLATEAU’.
e)	Liste des Clients ayant effectué un Emprunt le 02/07/2008 à l’Agence Zone 4.
f)	Solde moyen des Comptes-Clients des Agences dont le solde moyen est ≥ 200 000.
Configuration: Windows 2000
Firefox 2.0.0.3

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Tu coinces sur lesquels ? Tous ? Tu sais par où commencer ?

    1. Pour TON EXERCICE 1)A)

      SELECT NomCli

      FROM CLIENT, AGENCE, EMPRUNT

      WHERE CLIENT.NumCli = EMPRUNT.NumCli

      AND EMPRUNT.NumAg = AGENCE.NumAg

      AND AGENCE.VilleAg = "MARCORY"

      en fait tu fait le chemin de CLIENT à AGENCE et pour cela les liens sont inscrits par # dans ton BRD

      J'espère que je me suis pas trompé ca remonte à loin mes cours !!! lol
      1. merci a vous pour vos reponses mais pour vous faciliter la tache je vous posre ce que j'avais déja fait
        en realité à partir de la question b tout se complique pour moi

        1-	Donnons les scripts SQL de création des relations EMPRUNT et  AGENCE
        
        CREATE TABLE EMPRUNT
        (NumEmpr number (4) NOT NULL  PRIMARY KEY,NumAg varchar(4) NOT NULL  FOREIGN KEY,NumCli varchar(5) NOT NULL  FOREIGN KEY,Montant number(12));
        
             CREATE TABLE AGENCE
            (NumAg varchar(4) PRIMARY KEY,NomAg varchar(6),VilleAg char(8),Actif     number(12));
        
        2-	Ecrire correctement les requêtes suivantes en langage SQL :
        
        a.	Liste des Agences ayant des Comptes-Clients.
        
        SELECT NumAg,NomAg,NumCpte
        FROM  AGENCE,COMPTE
        WHERE AGENCE.NumAg=COMPTE.NumAg
        ORDER BY NomCli;
        b.	Liste des Clients ayant un Compte à l’Agence ‘ADJAME’.
        
                        SELECT   NumCli,NomCli,VilleAg,COMPTE.NumCpte,COMPTE.NumAg,
                        COMPTE.NumCli, AGENCE.NumAg
                         FROM COMPTE,CLIENT,AGENCE
        WHERE CLIENT.NumCli=COMPTE.NumCli
        AND COMPTE.NumAg=AGENCE.NumAg
        AND VilleAg=’ADJAME’;
        c.	Liste des Clients ayant un Compte et le nom de leur ville où ils habitent.
        	
        SELECT NumCli,NomCli,VilleCli,COMPTE.NumCpte,COMPTE.NumCli
        FROM CLIENT,COMPTE
        WHERE CLIENT. NumCli =COMPTE.NumCli
        ORDER BY NomCli;
        
        SELECT cl.NumCli, cl.NomCli, cl.VilleCli,c.COMPTE.NumCpte, COMPTE.NumCli
        FROM CLIENT cl,COMPTE c
        WHERE cl. NumCli =c.NumCli
        ORDER BY NomCli;
        
        
        d.	Liste des Clients ayant un Compte ou un Emprunt à ‘MARCORY’.
        
        SELECT NumCli,NomCli,VilleCli,NumCpte,COMPTE.NumCli,NumEmpr,
        Emprunt.NumCli,AGENCE.NumAg,VilleAg
                         FROM CLIENT,COMPTE,EMPRUNT,AGENCE
                         WHERE CLIENT. NumCli=COMPTE.NumCli
                         AND COMPTE.NumCli=EMPRUNT.NumCli
                         AND EMPRUNT.NumCli=CLIENT.NumCli
                         AND AGENCE.NumAg=EMPRUNT.NumAg
                         AND COMPTE.NumAg=AGENCE.NumAg
                         AND AGENCE.VilleAg =’MARCORY’;
        e.	Liste des Clients ayant un Compte et pas d’Emprunt à ‘MARCORY’.
        SELECT   NumCli,NomCli,VilleCli,NumCpte,COMPTE.NumCli,NumEmpr,                    Emprunt.NumCli, AGENCE.NumAg,VilleAg
                          FROM CLIENT,COMPTE,EMPRUNT,AGENCE
                          WHERE CLIENT. NumCli=COMPTE.NumCli
                         AND COMPTE.NumCli=EMPRUNT.NumCli
                         AND EMPRUNT.NumCli=CLIENT.NumCli
                         AND AGENCE.NumAg=EMPRUNT.NumAg
                         AND COMPTE.NumAg=AGENCE.NumAg
                         AND AGENCE.VilleAg =’MARCORY’
                         AGENCE.NumAg<>EMPRUNT.NumAg;
        f.	Liste des Clients ayant un Compte dans au moins une Agence du ‘PLATEAU’.
        
        SELECT NumCli,NomCli,VilleAg,COMPTE.NumCpte
        FROM CLIENT,COMPTE,AGENCE
        WHERE CLIENT. NumCli =COMPTE.NumCli
        AND AGENCE.NumAg=COMPTE.NumAg
                         AND AGENCE.VilleAg=’PLATEAU’
                          ORDER BY NomCli;
        g.	Liste des Agences ayant un actif plus élevé que toute Agence du ‘PLATEAU’.
        
                            SELECT NumCli,NomCli,VilleAg,NumCpte,AGENCE.NumAg
                            FROM CLIENT,COMPTE,AGENCE
                           WHERE CLIENT. NumCli =COMPTE.NumCli
                           AND AGENCE.NumAg=COMPTE.NumAg
                           AND VilleAg=’PLATEAU’;
        h.	Liste des Clients ayant effectué un Emprunt le 02/07/2008 à l’Agence Zone 4.
        ALTER TABLE EMRUNT ADD champ5 Date ;
        SELECT  NumCli,NomCli,VilleCli,EMPRUNT.NumAg,Date
        FROM CLIENT,EMPRUNT
        WHERE CLIENT.NumCli=EMPRUNT.NumCli
        AND Date=’02/07/2008’
        AND NumAg=’Zone 4’;
        i.	Solde moyen des Comptes-Clients des Agences dont le solde moyen est &#8805; 200 000.
                           SELECT NumCpte,NumAg, NumCli,Solde
                           FROM COMPTE
         WHERE SOLDE>=200000
        1. solde moyen a dit il faut donc utilisé avg
      2. c'est juste que j'ai fait des recherches....
        quand memme je ne vais pas venir donner tout mon travail sans avoir au préalable fourni des efforts

        Mais lis bien tu verras que j'ai pas tout traité et en plus j'ai postez pour que vous m'aidiez a corriger les eventuelles erreures
        1. c'est pas le même énoncé pour la question que j'ai faite