OVH Cloud OVH Cloud

non correspondance (unmatched query)

3 réponses
Avatar
fth
Bonjour,

Encore un probleme qui semble simple mais ...

des membres s'inscrivent sur un site et remplisse donc une DB (Tbl01)
l'application locale récuperent les données et les ajoute à la table locale
(Tbl02)

pour chacune de ces deux tables, je fais une qery dans laquelle je génére un
code unique (Idxbenevole)

si à la première APPEND je peux tout ajouter dans Tbl02, les fois suivantes,
il ne faut ajouter que les nouveaux.

Je passe alors par ( Unmatched Query) qui, dans mon esprit, va me donner les
nouveaux inscrit (ceux dont Idxbenevole n'existe pas encore)

Ben non ;-(

Je cherche donc à retrouver les nv inscrits ...

Unmatched query n'est peut etre pas la bonne solution?

D'avance merci

Frédéric

3 réponses

Avatar
Ilan
Bonjour,
Une solution est que tu ajoutes un champ dans la table tbl02 dans lequel
tu indiques idxbenevole source de la table tbl01. Ta requete met alors à
jour tous les enregistrements de tbl01 dont le code idxbenevole n'est pas
dans la table tbl02.

Une autre solution est de baser ta requete sur la date d'inscription, dans
la table tbl01 les dates d'inscription de nouveaux inscrits est plus grand
que la plus grande date de la table tbl02 ou dont la date d'inscription n'est
pas dans la table tbl02 quand la table tbl02 est vide.

INSERT INTO Tbl02 SELECT *
FROM Tbl01
WHERE DateInscription>(SELECT MAX(DateInscription) FROM Tbl02 )
OR
DateInscription NOT IN (SELECT DateInscription FROM TBL02)



Bonjour,

Encore un probleme qui semble simple mais ...

des membres s'inscrivent sur un site et remplisse donc une DB (Tbl01)
l'application locale récuperent les données et les ajoute à la table locale
(Tbl02)

pour chacune de ces deux tables, je fais une qery dans laquelle je génére un
code unique (Idxbenevole)

si à la première APPEND je peux tout ajouter dans Tbl02, les fois suivantes,
il ne faut ajouter que les nouveaux.

Je passe alors par ( Unmatched Query) qui, dans mon esprit, va me donner les
nouveaux inscrit (ceux dont Idxbenevole n'existe pas encore)

Ben non ;-(

Je cherche donc à retrouver les nv inscrits ...

Unmatched query n'est peut etre pas la bonne solution?

D'avance merci

Frédéric





Avatar
fth
Bonjour,

et merci de te pencher un peu sur mon probleme :-)
ceci dit, suis un peu géné maintenant:
j'ai essayé unmatched query dans tous les sens et en désespoir de cause,
j'ai posté un message ici...
Hier soir, je m'y remet un coup... et ça marche du premier coup...
y a de quoi peter un cable, non ?!!!?
Donc j'obtiens maintenant le résultat que j'attendais...
mais je vais creuser un peu ta solution, elle pourrait me servir pour la
suite
Ceci dit, le filtrage par la date ne conviens pas dans le cas présent.
Pour la valeur unique par record et pour ne pas dépendre uniquement de l'ID
automatique, j'ai créé un index qui reprend les 3 premiers lettres du nom,
du prénom, la valeur de la date (numérique) etc .. et je me sert de ça pour
repérer les nouveaux.


Bonne journée

Frédéric


"Ilan" wrote in message
news:
Bonjour,
Une solution est que tu ajoutes un champ dans la table tbl02 dans lequel
tu indiques idxbenevole source de la table tbl01. Ta requete met alors à
jour tous les enregistrements de tbl01 dont le code idxbenevole n'est pas
dans la table tbl02.

Une autre solution est de baser ta requete sur la date d'inscription, dans
la table tbl01 les dates d'inscription de nouveaux inscrits est plus grand
que la plus grande date de la table tbl02 ou dont la date d'inscription
n'est
pas dans la table tbl02 quand la table tbl02 est vide.

INSERT INTO Tbl02 SELECT *
FROM Tbl01
WHERE DateInscription>(SELECT MAX(DateInscription) FROM Tbl02 )
OR
DateInscription NOT IN (SELECT DateInscription FROM TBL02)



Bonjour,

Encore un probleme qui semble simple mais ...

des membres s'inscrivent sur un site et remplisse donc une DB (Tbl01)
l'application locale récuperent les données et les ajoute à la table
locale
(Tbl02)

pour chacune de ces deux tables, je fais une qery dans laquelle je génére
un
code unique (Idxbenevole)

si à la première APPEND je peux tout ajouter dans Tbl02, les fois
suivantes,
il ne faut ajouter que les nouveaux.

Je passe alors par ( Unmatched Query) qui, dans mon esprit, va me donner
les
nouveaux inscrit (ceux dont Idxbenevole n'existe pas encore)

Ben non ;-(

Je cherche donc à retrouver les nv inscrits ...

Unmatched query n'est peut etre pas la bonne solution?

D'avance merci

Frédéric







Avatar
Ilan
Concernant la date il s'agît de la date au format allongée date + heure
minute seconde; si tu crées un index pour la recherche; tu peux gagner du
temps en reprenant dans la table tbl02 l'id de la table tbl01 en ajoutant un
champ idxtbl01; puisque à chaque index tu as déjà un identifiant unique
idxbenevole. L'autre solution est de mettre le champ idxbenevole de la table
tbl02 en numéro et non numéro auto. De la même manière, tu devrais créer un
n° d'adhérent identique dans les deux tables; dans la mesure où tbl02 est la
copie de tbl01. Encore tu peux vider tbl01 après vérification du transfert
vers tbl02; la table tbl01 ne servant qu'à enregistrer les nouveaux adhérents
et non tous les inscrits.


Bonjour,

et merci de te pencher un peu sur mon probleme :-)
ceci dit, suis un peu géné maintenant:
j'ai essayé unmatched query dans tous les sens et en désespoir de cause,
j'ai posté un message ici...
Hier soir, je m'y remet un coup... et ça marche du premier coup...
y a de quoi peter un cable, non ?!!!?
Donc j'obtiens maintenant le résultat que j'attendais...
mais je vais creuser un peu ta solution, elle pourrait me servir pour la
suite
Ceci dit, le filtrage par la date ne conviens pas dans le cas présent.
Pour la valeur unique par record et pour ne pas dépendre uniquement de l'ID
automatique, j'ai créé un index qui reprend les 3 premiers lettres du nom,
du prénom, la valeur de la date (numérique) etc .. et je me sert de ça pour
repérer les nouveaux.


Bonne journée

Frédéric


"Ilan" wrote in message
news:
Bonjour,
Une solution est que tu ajoutes un champ dans la table tbl02 dans lequel
tu indiques idxbenevole source de la table tbl01. Ta requete met alors à
jour tous les enregistrements de tbl01 dont le code idxbenevole n'est pas
dans la table tbl02.

Une autre solution est de baser ta requete sur la date d'inscription, dans
la table tbl01 les dates d'inscription de nouveaux inscrits est plus grand
que la plus grande date de la table tbl02 ou dont la date d'inscription
n'est
pas dans la table tbl02 quand la table tbl02 est vide.

INSERT INTO Tbl02 SELECT *
FROM Tbl01
WHERE DateInscription>(SELECT MAX(DateInscription) FROM Tbl02 )
OR
DateInscription NOT IN (SELECT DateInscription FROM TBL02)



Bonjour,

Encore un probleme qui semble simple mais ...

des membres s'inscrivent sur un site et remplisse donc une DB (Tbl01)
l'application locale récuperent les données et les ajoute à la table
locale
(Tbl02)

pour chacune de ces deux tables, je fais une qery dans laquelle je génére
un
code unique (Idxbenevole)

si à la première APPEND je peux tout ajouter dans Tbl02, les fois
suivantes,
il ne faut ajouter que les nouveaux.

Je passe alors par ( Unmatched Query) qui, dans mon esprit, va me donner
les
nouveaux inscrit (ceux dont Idxbenevole n'existe pas encore)

Ben non ;-(

Je cherche donc à retrouver les nv inscrits ...

Unmatched query n'est peut etre pas la bonne solution?

D'avance merci

Frédéric