Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/02/2012, 12h00   #1
Invité régulier
 
Homme
Inscription : août 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 17
Points : 9
Points : 9
Par défaut somme de requete

Bonjour

Je ne sais pas si le titre reflete bien mon probleme.

j'ai fait une base avec une table personne (nom, prenom, appartement)
et une table echange (id_nom, id_nom1, id_nom2)

Cela me permet de gerer des echanges d'appartement. Par défaut j'ai deux personnes qui echange leur appartement, et exeptionnellement je peux avoir des echanges à trois.

j'ai donc fait une requette pour avoir les noms des personnes qui echange.
Ma requette est constitué de ma table echange et de deux tables personne.
Cela me permet de voir les échanges à deux.
Mais si je rajoute une troisieme fois ma table personne, je ne vois plus que les echange à trois. J'ai essaye de jouer sur le type de jointure de la troisieme table, mais cela ne fonctionne pas

Pour le moment j'ai fait deux requettes pour avoir tous les resultats, mais cela m'oblige à gerer deux listes.

Est ce qu'il est possible de faire cela avec une seul requette ?

Merci pour votre aide
Images attachées
Type de fichier : jpg Untitled.jpg (23,4 Ko, 5 affichages)
fmagh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 12h22   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 876
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 876
Points : 10 741
Points : 10 741
Envoyer un message via MSN à jpcheck
Salut,

peut-on partir du principe qu'en cas d'échange à trois les 3 champs sont renseignés et qu'en cas d'échange à 2, le champ 3 est à Null ?
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h13   #3
Invité régulier
 
Homme
Inscription : août 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 17
Points : 9
Points : 9
oui le troisième champ est null quand il y a un echange à deux
fmagh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h18   #4
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 876
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 876
Points : 10 741
Points : 10 741
Envoyer un message via MSN à jpcheck
Deux possibilités arrivent en priorité :
- requete avec jointure left join au lieu de inner join sur ton champ 3
- requete UNION
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2012, 14h54   #5
Invité régulier
 
Homme
Inscription : août 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2011
Messages : 17
Points : 9
Points : 9
Merci pour la réponse, en faite j'avais deja essaye avec le left join, mais le probleme venait que j'ai une table appartement lié à la table personne dans ma requete.

Donc comme dans ta réponse tu m'a dit que cela devait marcher, j'ai fait des tests.
En faite quand j'enleve la table appartement cela fonctionne avec le left. J'ai donc rajouter ma table appartement que j'ai lié aussi avec un left join et tout fonctionne. Quand je n'avais pas le left sur la table appartement, j'avais un message d'erreur du type " The SQL statement could not be executed because it contains ambigous outer joins"

En tout cas merci pour ta réponse.

Cordialement
Frédéric
fmagh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 10h46   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 187
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 187
Points : 2 822
Points : 2 822
Bonjour Fmagh et Jpcheck,

Je me permets de m'immiscer, Jpcheck...

Ne faudrait-il pas revoir la conception ?

Suggestion (souligné=clé primaire numéro auto, #=clé étrangère) :
Personne(IdPersonne, Nom, ...) ;
Appartement(IdAppartement, #IdPersonne, ...) ;
==> 1 appartement est lié à une personne.
Echange(#IdAppartement, DateEchange, #IdPersonne, ...).
==> 1 appartement, à une date donnée, fait l'objet d'un échange concernant plusieurs personnes.
Fmagh, je te laisse établir les relations qui sont relativement évidentes.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h21.


 
 
 
 
Partenaires

Hébergement Web