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 23/11/2011, 20h39   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Jointure externe complexe

Bonjour,

J'ai un petit soucis d'écriture d'une requête ACCESS.
Je vous explique :
J'ai 4 tables (Clients, Factures, Articles1, Articles2).
Client et Factures ont Client en commun
Articles1 peut avoir des enregistrements qu'on peut lier avec Factures.NoFacture
Articles2 peut avoir des enregistrements qu'on peut lier avec Factures.NoFacture

En SQL "classique", j'aurais fais la requête suivante :
Code :
1
2
3
4
SELECT * FROM Clients as c, Factures as f, Articles1 as a, Articles2 as b
WHERE a.Client = b.Client(+) AND
f.NoFacture = a.NoFacture (+) AND
f.NoFacture = b.NoFacture (+)
En effet, je veux qu'il me ramène le résultat même s'il n'y a pas d'enregistrement dans Articles1 ou Articles2.

J'ai essayé avec des LEFT JOIN à la place mais j'ai le message d'erreur "Expression JOIN non supportée".
Code :
1
2
3
4
SELECT ...
FROM ((Clients LEFT OUTER JOIN Factures ON Clients.Client = Factures.Client) LEFT OUTER JOIN [Articles1] ON Factures.NoFacture = [Articles1].NoFacture) LEFT OUTER JOIN [Articles2] ON Factures.NoFacture = [Articles2].NoFacture
GROUP BY Clients.Client, Clients.CodeCli, Clients.NomAbrégé, Factures.NoFacture
ORDER BY Clients.Client, Factures.NoFacture;
Comment faire pour avoir le résultat :
Client, NoFacture, Articles1.une_info (ou null s'il n'y en a pas), Articles1.une_info (ou null s'il n'y en a pas)

Aidez moi svp !!
Liquide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 21h09   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Salut,

Utilise le QBE pour réaliser tes jointures gauches entre tes tables...

Ensuite si ça coince toujours utilise une sous-requête.

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 21h22   #3
Invité de passage
 
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 0
Points : 0
Je ne sais pas l'utiliser... Est-ce l'assistant d'Access ?
Comment y accéder ?

Merci pour votre aide.
Liquide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 21h36   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Re,

Dans la fenêtres "Base de données",
clic sur Onglet "Requêtes",
puis "Nouveau" -> "Mode création",
puis tu ajoutes les tables dont tu as besoin...
après tu crées une liaison en tirant un trait entre 2 champs de 2 tables en maintenant la souris appuyée.

Une fois la liaison établie, 1 clic-droit sur le lien, puis "propriétés de la jointure", et tu choisis le sens de la jointure...

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web