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 24/03/2011, 00h03   #1
Membre du Club
 
Yvan Fournier
Inscription : juin 2005
Messages : 234
Détails du profil
Informations personnelles :
Nom : Yvan Fournier

Informations forums :
Inscription : juin 2005
Messages : 234
Points : 41
Points : 41
Par défaut Requête qui n'affiche pas les participants.

Bonjour,

J'ai cette requête qui me permet d'imprimer toutes les activité avec les participants pour chaque activité.

S'il n'y a pas de participants, l'activité ne s'affiche pas. J'ai essayé de modifier la jointure pour la 2e option, je reçois le message suivant: Expression JOIN non supportée, la 3e est ok mais l'activité ne s'affiche pas.

Code :
1
2
3
SELECT Participant.État, Participant.no_act, Participant.no_part, Participant.État_dt, Personne.nom & ' ' & Personne.prenom AS Identité, Personne.Employeur, Personne.Titre, Activité.Type, Activité.Activite, Activité.dt_act, Year(Activité.dt_act) AS an, Activité.lieu, Activité.Heure, Personne.UQTR, Personne.Employeur, Organisme.organisme, Activité.No_conf, Activité.cf_sujet, Participant.Note
FROM (Organisme RIGHT JOIN Activité ON Organisme.Dossier = Activité.No_org) RIGHT JOIN (Participant INNER JOIN Personne ON Participant.no_part = Personne.[No]) ON Activité.no_act = Participant.no_act
ORDER BY Personne.nom & ' ' & Personne.prenom;

J'espère que ça se comprend.
fourniey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 09h55   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 254
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 254
Points : 1 870
Points : 1 870
Bonjour,

C'est l'ordre des tables qui décide de ce qui est affiché. J'ai l'habitude d'utiliser LEFT JOIN et non RIGHT ainsi les tables sont appelées par importance décroissante. Dans ton cas c'est je pense :
Code :
activité > organisme > participant > personne
Avec right c'est pareil mais dans l'autre sens
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 11h59   #3
Membre du Club
 
Yvan Fournier
Inscription : juin 2005
Messages : 234
Détails du profil
Informations personnelles :
Nom : Yvan Fournier

Informations forums :
Inscription : juin 2005
Messages : 234
Points : 41
Points : 41
Merci!

Est-ce que ça ne risque pas de tout défaire mon rapport ?

Je ne m'y connais pas en sql, c'est donc Access qui a mis les right.
fourniey est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h44   #4
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 254
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 254
Points : 1 870
Points : 1 870
J'imagine qu'access met ça dans l'ordre où les tables sont saisies puis left, right ou inner en fonction du lien déclaré

D'une manière générale c'est plus lisible avec les inner d'abord (tables principales obligatoires) et les left ensuite (tables complémentaires optionnelles) :
Code :
((t1 inner join t2 on ...) left join t3 on ...) left join t4 on ...
nico84 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 21h50.


 
 
 
 
Partenaires

Hébergement Web