Bonjour à tous,
J'essais de faire un Right Outer Join mais ça ne fonctionne pas bien à mon avis avec MS Access
(Voir l'image en pièce jointe pour mes deux tables et leur relations.)
C'est très simple comme exemple mais ça suffira :
La table Jours contient tous les jours de la semaine.
La table ClientsJours contient tous les jours qu'un client peut posséder.
Voilà ce que contient ma table Jours :
Et ma table ClientsJours :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ID NOM 1 Dimanche 2 Lundi 3 Mardi 4 Mercredi 5 Jeudi 6 Vendredi 7 Samedi
J'aimerais pour un client ayant un ID précis, récupérer TOUS les lignes étant dans la table Jours et ainsi qu'un champs addtionnel avec un 0 ou un 1 pour dire si il le client le possède.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ClientID JourID 1 1 1 4 1 5 2 1 3 6
Voilà ce à quoi ça devrait ressembler pour le client #1 :
Voilà ce que j'ai comme requête jusqu'ici. Faut dire que j'ai l'habitude de faire des LEFT OUTER JOIN avec MySQL et MS SQL et ça fonctionne très bien !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Jours Sélectionner Dimanche 1 Lundi 0 Mardi 0 Mercredi 1 Jeudi 1 Vendredi 0 Samedi 0
Mais ça ne fonctionne pas ! Il me renvoit seulement ceux qui sont présent dans la table ClientJours. Moi je veux TOUS ceux de la table Jours...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT Jours.Nom, IIf(IsNull([JourID]),0,1) AS Sélectionné FROM Jours RIGHT OUTER JOIN ClientsJours ON Jours.ID = ClientsJours.JourID WHERE ClientsJours.ClientID = 1;
Bref, merci d'avance pour votre aide
Partager