Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

State Of The Map 2024

#1 Wed 03 December 2008 16:48

gorias
Participant actif
Date d'inscription: 9 Sep 2005
Messages: 60

[MI 7.5] Pb de Mise à jour colonne avec jointure

Bonjour à tous et à toutes,

J'ai un souci sur la mise à jour d'une table :
- J'ai une table  avec X enregistrements et veut mettre à jour la valeur d'un champ pour certains d'entre eux. Les valeurs de ces derniers sont contenues dans un tableau excel (il n'y a pas tout les enregistrements compris dans ma table de référence).
- J'ouvre donc ce tableau et effectue une jointure... "Calculer la valeur de"... Pas de problème....
- J'observe le résultat ; je me rends compte que pour les enregistrements dont les géocodes correspondaient à ceux de ma table issue d'Excel, les mises à jour se sont bien faites.
Par contre, pout tous les autres, les valeurs de base ont été effacées !!

Quelqu'un a t il déjà rencontré ce problème et possède t'il une solution me permettant de mettre à jour les enregistrements considérés de ma table sans toucher aux autres enregistrements ?

D'avance merci !

Hors ligne

 

#2 Wed 03 December 2008 16:56

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

Bonjour,

Pour éviter d'effacer les valeurs où il n'y a pas de correspondances, faites une requête SQL. (Identifiant de la table MapInfo = Identifiant de la table Excel).
Faites votre mise à jour sur le résultat de cette requête. Les enregistrements de la table MapInfo qui correspondent à ceux de la table MapInfo seront mis à jour et les autres ne seront pas modifiés.

Hors ligne

 

#3 Wed 03 December 2008 17:08

gorias
Participant actif
Date d'inscription: 9 Sep 2005
Messages: 60

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

Bonjour et merci de votre réactivité,

Evidemment c'est l'une des premières choses à laquelle j'ai pensé..
Je fait donc ma requete SQL en spécifiant ma condition de jointure. Malheureusement le résultat de cette query casse le lien avec ma table d'origine et ne peut donc pas par la suite répercuter les mises à jour sur cette dernière...
ça aussi j'ai du mal à le comprendre (peut être estce parce que dans le résultat de ma requete j'ai les champs des deux tables ??).

Snniff (onomatopée française)!

Dernière modification par gorias (Wed 03 December 2008 17:10)

Hors ligne

 

#4 Wed 03 December 2008 17:38

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

gorias a écrit:

...le résultat de cette query casse le lien avec ma table d'origine...(peut être parce que dans le résultat de ma requete j'ai les champs des deux tables ??)....


Surpris de ce "cassage de lien"...
Mais pour éviter d'avoir les champs des deux tables il faut, dans la FMB, une syntaxe genre:
select * from table1 where ID1 = any (select ID2 from table2)

Hors ligne

 

#5 Wed 03 December 2008 17:42

Marc-André
Participant assidu
Lieu: Montréal
Date d'inscription: 30 Sep 2005
Messages: 688

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

Bonjour,

Dans les requêtes SQL, l'ordre des tables a son importance.
Il faut d'abord placer la table dans laquelle on veut travailler, puis celle où on va chercher l'information.
Dans ce cas-ci Pour «Tables:» il faut placer la table MapInfo, puis la table Excel.
Pour «Critères:» la condition sera la suivante: Table_MapInfo.Identifiant = Table_Excel.Identifiant
Dans «Colonnes:» Vous pouvez remplacer l'étoile (toutes les colonnes) par les colonnes qui vous sont utiles.

Hors ligne

 

#6 Wed 03 December 2008 17:49

gorias
Participant actif
Date d'inscription: 9 Sep 2005
Messages: 60

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

Bonsoir Maurice,

Moi aussi j'ai été étonné de cette cassure avec la table d'origine.
Poutant je m'en suis rendu en comparant le résultant d'une requete simple avec celle d'une requête requérant deux tables :
- Pour la requete simple, lorsque le résultat (Query1) mis en vis à vis avec ma table d'origine est sélectionné il l'est aussi dans la seconde
- Pour la requete SQL, lorsque je sélectionne le résultat (Query2 par exple) et que j'affiche ma table d'origine à l'endroit où il devrait avaoir des éléments sélectionné, ils ne le sont pas...

du coup j'en reviens au point de départ et ne peut donc toujours pas mettre ma table de base à jour.

Merci du coup de main !
Bonne soirée

Hors ligne

 

#7 Wed 03 December 2008 18:11

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

Je persiste: le lien ne DOIT PAS se casser...SAUF s'il y a un Group By dans la requête ET à la condition de mettre en premier la table dans laquelle on veut créer une sélection !!
Par contre ce n'est pas la requête (sans Group By) qui peut être mise à jour si vous utilisez les deux tables dans le from...cette sélection n'est en effet pas disponible directement sous le nomde "selection". Pour ça, il vous faut retourner dans la table1, faire deux fois "inverser sélection", puis mettre à jour et choisir: selection, cette fois disponible.
nb: si vous utilisez la requête avec une sous-sélection (voir post#4) alors vous pourrez directement mettre à jour selection qui sera disponible !

Hors ligne

 

#8 Thu 04 December 2008 16:49

gorias
Participant actif
Date d'inscription: 9 Sep 2005
Messages: 60

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

Bonsoir à tous, et merci Maurice et Marc-André !

Je tenais à vous dire que mon probleme à été résolu grâce à vos conseils.
Effectivement, en suivant vos recommandations, le lien avec ma table source n'a pas été cassé lors d'une requête SQl spécifiant de trouver les identifiants communs.
Surement que d'indiquer en premier  la table sur laquelle je travaillais y est pour beaucoup.
J'ai donc pu par la suite mettre ma sélection à jour (Je devais me tromper à ce niveau aussi en demandant la table entière).
Maurice, j'ai suivi tes conseils ça fonctionne très bien, mais j'ai du mal à comprendre ceci

faire deux fois "inverser sélection"


.
Cela n'est'il pas la même chose que de sélectionner directement ? (pour donner une image, faire une rotation de 360 degré équivaut à revenir à son point de départ)...

Bonne soirée et merci une fois de plus !!

Hors ligne

 

#9 Thu 04 December 2008 16:56

gorias
Participant actif
Date d'inscription: 9 Sep 2005
Messages: 60

Re: [MI 7.5] Pb de Mise à jour colonne avec jointure

Oups !

Je viens juste de compredre le fameux

Faire deux fois inverser la sélection


.
Effectivement lors de "Mettre à jour colonnne" , l'onglet "table à mettre à jour" ne propose pas "Sélection" dans le cas d'une sélection directe via une Sql. Ce devait être sur ce point là que je bloquait (enfin entre autre...)

@+ la communauté !!

Hors ligne

 

Pied de page des forums

Powered by FluxBB