Aide requete sql
j'ai le modèle relationnel suivant :
CLIENTS [ClNum, ClNom, ClSecu, ClTel, ClAdresse]
COMPTES [CoId, CoNum, CoSolde, CoType, CoDateOuv, ANum_ouverture*]
TRANSACTIONS [TNum, TType, TMontant, TDate, TDateValeur, CoId*, ClNum*]
PROPRIETAIRE [ClNum*, CoId*]
AGENCES [ANum, AAdresse, ATel]
HEBERGER [CoId*, ANum*, DateDebH]
OUVERTURES [ANum*, JId*, HeureOuv, HeureFerm]
JOURS [JId, JNom]
EMPLOYES [ENum, ENom, EAdresse, ESalaire, EDateNais, EPhoto, ENum_superieur*]
AFFECTER [ENum*, ANum*, DateDeb, DateFin]
et je voudrais réaliser la requete suivante :
Quel est le nom et l’adresse des clients qui possèdent un compte ouvert à Rennes, ou qui
possèdent un compte joint avec quelqu’un qui possède un compte ouvert à Rennes ?
sachant que l'agence de rennes a pour numéro d'agence 22222
je reste complètement bloqué. pourriez vous m'aider svp ?
Configuration: Windows Vista Internet Explorer 7.0
13 réponses
La demande cherche le nom et l’adresse des clients possédant un compte ouvert à Rennes, ou d’un compte joint avec une personne ayant un compte ouvert à Rennes, l’agence étant la 22222. Plusieurs solutions existent, mais la réponse retenue présente deux requêtes SQL, jointes entre AGENCES, COMPTES, CLIENTS et TRANSACTIONS, afin d’isoler les comptes ouverts à Rennes. La première requête nommée Requête1 sélectionne les noms et adresses par jointures et regroupe selon CoNum afin d’identifier les clients liés à des comptes ouverts dans l’agence 22222. Elle permet d’éviter les doublons et peut s’appuyer sur une étape de regroupement par CoNum pour restituer des résultats, garantissant que chaque client n’apparaît qu’une fois, même en présence de comptes multiples.
-
Quel sont t champs egaux
-
bah ds t differente table quel sont t champs egaux ex:
table client ; le champ nom
=
table banque ;le champ nomclients-
-
@florianoui ?
-
-
tu peux poster ta base?
-
tu peux sur :
www.cijoint.fr -
tro compliquer il faut relier plusieurs base!!!
ce n'est pas ecris mais tu peux mettre des mdb qd meme -
dsl il faut faire un petit zip avant de le metttre
sinon:
selectionne :
CLIENTS [ClNum, ClNom, ClSecu, ClTel, ClAdresse]
COMPTES [CoId, CoNum, CoSolde, CoType, CoDateOuv, ANum_ouverture*]
TRANSACTIONS [TNum, TType, TMontant, TDate, TDateValeur, CoId*, ClNum*]
AGENCES [ANum, AAdresse, ATel]
fais t relations puis
selectionne les champ:
ClNom,ClAdresse,ANum
pour ANum critere = 22222
sachant que l'agence de rennes a pour numéro d'agence 22222 -
bah si tu faisais un .zip je pourrai m'y pencher
-
-
@florianhttp://www.cijoint.fr/cjlink.php?file=cj200912/cijb9FNBrU.zip
-
-
ok
-
tiens creer une requete ne choisi aucune table et clique sur sql en haut a gauche et copie ca :
SELECT CLIENTS.ClNom, CLIENTS.ClAdresse
FROM AGENCES INNER JOIN (COMPTES INNER JOIN (CLIENTS INNER JOIN TRANSACTIONS ON CLIENTS.ClNum = TRANSACTIONS.ClNum) ON COMPTES.CoId = TRANSACTIONS.CoId) ON AGENCES.ANum = COMPTES.ANum_Ouverture
GROUP BY CLIENTS.ClNom, CLIENTS.ClAdresse, AGENCES.ANum
HAVING (((AGENCES.ANum)="22222"));
execute et dis moi si c ca ? -
c koi le resultat voulu?
-
ok c bien ce que je pensai je regarde
-
SELECT CLIENTS.ClNom, CLIENTS.ClAdresse, COMPTES.CoNum, AGENCES.ANum
FROM AGENCES INNER JOIN (COMPTES INNER JOIN (CLIENTS INNER JOIN TRANSACTIONS ON CLIENTS.ClNum = TRANSACTIONS.ClNum) ON COMPTES.CoId = TRANSACTIONS.CoId) ON AGENCES.ANum = COMPTES.ANum_Ouverture
GROUP BY CLIENTS.ClNom, CLIENTS.ClAdresse, COMPTES.CoNum, AGENCES.ANum; -
c bon g trouvé il te faut 2 requetes:
1ere requete nommé : requête1
SELECT CLIENTS.ClNom, CLIENTS.ClAdresse
FROM AGENCES INNER JOIN (COMPTES INNER JOIN (CLIENTS INNER JOIN TRANSACTIONS ON CLIENTS.ClNum = TRANSACTIONS.ClNum) ON COMPTES.CoId = TRANSACTIONS.CoId) ON AGENCES.ANum = COMPTES.ANum_Ouverture
GROUP BY CLIENTS.ClNom, CLIENTS.ClAdresse, COMPTES.CoNum
ORDER BY COMPTES.CoNum;
puis une 2eme basé sur cette 1ere
SELECT Requête1.ClNom, Requête1.ClAdresse
FROM Requête1
GROUP BY Requête1.ClNom, Requête1.ClAdresse;