Requete sql access

dewardo -  
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai 2 tables ( t1 et t2 ) t1 contient tt les cin
et T2 contient quelque cin qui peuvent n'etre pas correcte par rapport a la source ( T1 )
je vx faire une jointure entre les 2 tables et afficher les lignes de t2 qui n'existent pas dans la T1
j'ai essayer avec ( zonecin not= z2, z1 not equal z2, z1 <> z2 )
mais son résultat
merci en avance


4 réponses

OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Pour que cela fonctionne il faut une valeur unique qui permet d'identifier un enregistrement dans vos deux tables ... j'ai supposé qu'il s'agit de zonecin.

Pour sélectionner tout ce qui se trouve dans T1 mais qui n'est pas dans T2:

Syntaxe Access :

SELECT T1.* FROM T1 INNER JOIN T2 ON (T1.zonecin = T2.zonecin)
WHERE (T2.zonecin Is Null);

bye
0
dewardo
 
merci
mais ca marche pas :S
0
blux Messages postés 27137 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Salut,

il faut plutôt aller voir du côté de la jointure droite (right join on) ou gauche (left join on) à la place de l'équijointure (inner join on)...

Essaye l'assistant requête avec 'requête de non-correspondance'...
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Essaye ceci :
SELECT T1.* FROM T1 LEFT JOIN T2 ON (T1.zonecin = T2.zonecin)
WHERE (T2.zonecin Is Null);

> Cette requête retourne tout ce qui se trouve dans T1 et qui n'est pas dans T2.

Pour l'inverse, il suffit d'inverser T1 et T2. Ci-dessous, la requête retournera tout ce qui se trouve dans T2 et pas dans T1

SELECT T2.* FROM T2 LEFT JOIN T1 ON (T2.zonecin = T1.zonecin)
WHERE (T1.zonecin Is Null);


Si tu nous expliquais plutôt ce que sont ces "cin" dont tu parles.
0