SQL "EXCEPTION JOIN" sous ACCESS

Résolu
HDelarse Messages postés 13 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 12 avril 2005 - 31 mars 2005 à 10:13
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 31 mars 2005 à 16:32
Bonjour à tous,
J'ai un problême de syntax dans une requète pour ACCESS, je n'arrive pas
à formuler l'expression EXCEPTION JOIN entre deux tables, pour extraire le
enregistrements discordants. Peut-on utiliser cette expression (si oui, comment)
ou y a t'il un équivalent.
Ma requète :
"SELECT a.IdPersonne AS Num, a.NomPersonne AS Nom,
a.PrenomPersonne AS Prenom
FROM T_Personne a EXCEPTION JOIN T_Reglement b
WHERE b.AnneeCotisation = Year(Date)
AND a.IdPersonne = b.IdPersonne"
Sans EXCEPTION JOIN, la requète me renvoie bien les enregistrements
concordants, mais pour avoir l'inverse, Access me lève une erreur
dans la close FROM.
Si quelqu'un a une idée, par avance merci.

5 réponses

HDelarse Messages postés 13 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 12 avril 2005
31 mars 2005 à 15:47
cela fonctionne, mais il me reste un petit problème, c'est les personnes qui sont
dans la base de donnée et qui n'ont pas fait de réservation et ne sont pas
membres, par exemple lors de la création, je dois pouvoir entrer un nom et
ses coordonnées avant qu'il ne soit présent dans une autre table.
J'ai réussi avec
SELECT DISTINCT a.IdPersonne AS Num, a.NomPersonne AS Nom, a.PrenomPersonne AS Prenom
FROM T_Personnes AS a
WHERE a.IdPersonne NOT IN (SELECT a.IdPersonne
FROM T_Personnes AS a, T_Reglement AS b
WHERE b.AnneeCotisation='2005' And a.IdPersonne=b.IdPersonne)
ORDER BY a.NomPersonne;
Mais j'esperais plus simple.
Merci encore.
3
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
31 mars 2005 à 14:27
Essayes avec EXCEPT

SELECT Colonne1 [,colonne2]

FROM TABLE1 [,TABLE2]

[WHERE]

EXCEPT

SELECT Colonne1...
TBBUIM
0
HDelarse Messages postés 13 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 12 avril 2005
31 mars 2005 à 14:53
Merci, mais cela ne donne pas le résultat escompté...
Bon, je te donne plus de détails, il s'agit de la gestion d'un club.
J'ai une table ou il y a des Personnes
J'ai des "Membres" et des "Externes",
Je veux charger deux FlexGrid, une Membres, l'autre Externes.
Pour vérifier leur état, je recherche dans une table "Réglement" si
IdPersonne a réglé sa cotisation Annuelle.
La dificulté, c'est que j'ai des personnes qui ont effectué un règlement
pour une sortie (donc, ils sont présent dans la table règlement), mais d'autre
n'y sont pas ( ex: les reservations).
J'espère avoir été explicit et te remerci encore...
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
31 mars 2005 à 15:19
Dans ce cas, pourquoi ne pas utiliser un NOT IN

Qui renvoi les éléments qui ne sont pas dans la requête comparée

Exemple:

Select IdPersonne FROM Reservations

NOT IN

Select IdPersonne FROM Règlements



Retourne IdPersonne de Reservations qui ne sont pas dans les règlements

TBBUIM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
31 mars 2005 à 16:32
C'est cool alors

Mais personnellement je ne trouve pas cette requête compliquée

C'est sur c'est pas du select * from Table, mais bon, ça va

N'oublies pas de mettre réponse acceptée. Merci


TBBUIM
0
Rejoignez-nous