#1 Tue 19 November 2013 08:10
- teahupoo
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 29
mise à jour champs
Bonjour,
Je souhaite mettre à jour les champs classe 1 classe 2 classe3 classe4 et classe5 d'une table avec une série d'autres tables comprenant les mêmes champs.
Lorsque je fais la mise à jour avec une table tout se passe bien. Mais lorsque je continue la mise à jour avec la deuxième table, le résultat efface la mise à jour précédente. et ainsi de suite...
Quelqu'un pourrait-il m'aider? je bloque sur ce point.
Merci d'avance
Bonne journée!
géomaticienne
Hors ligne
#2 Tue 19 November 2013 10:03
Re: mise à jour champs
Bonjour
Comment se passe les mise à jour, c'est un champs par table?
Ou alors chaque table servant à la mise à jour de la table principale comprend une partie des lignes sur plusieurs champs?
En gros est ce qe tu as une table pour la mise à jour de la classe 1, une table pour la classe2... ou alors, chaque table a des enregistrement pour le classe1, de la classe 2...etc
Hors ligne
#3 Tue 19 November 2013 10:06
- teahupoo
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 29
Re: mise à jour champs
Bonjour,
Non chaque tables à des enregistrements pour toutes les classes.
géomaticienne
Hors ligne
#4 Tue 19 November 2013 10:26
Re: mise à jour champs
Alors, une méthode pas du tout optimale mais qui permet de bien visualiser les mises à jours:
- tu fais d'abord une sélection pour chaque table servant de mise à jour avec une jointure. Ca te ressort une sélection (un une table temporaire query)
- et ensuite tu fais les mises à jour chaque colonne de cette sélection (ou de la table query) à partir de tes table extérieures.
Ca prend plus de temps mais on voit pas à pas les mises à jours que l'on fait et 'on peut contrôler ce qu'on fait.
Sinon, la bonne méthode serait de faire une jointure lors de la mise à jour des colonnes.
Hors ligne
#5 Tue 19 November 2013 10:30
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: mise à jour champs
Bonjour,
Le problème ressemble à celui-ci :
vous avez une table1 qui comporte 2 attributs : un attribut "identifiant" et un attribut "classe" que vous voulez mettre à jour à partir d'autres tables.
Vous avez n autres tables avec ce même attribut identifiant, par contre chacune de ces n tables ont un attribut "classe" avec un enregistrement unique : table2 avec uniquement des objets de classe1, table 3 avec uniquement des objets de classe 2, etc.
Si vous mettez à jour toute votre table1, MapInfo va attribuer la valeur "classe" rencontrée pour chaque identifiant identique entre les 2 tables, et la valeur 0 (si champ numérique) ou vide (si champ texte) pour tous les objets de la table 1 qui n'ont pas été retrouvés dans la table 2.
Pour éviter cela, il faut procéder par sélections successives et mettre à jour ces sélections de la table 1 et non la table 1 elle-même.
Par exemple sélectionnez les objets de la table 1 en commun avec la table 2, puis mettre à jour cette sélection avec la table 2.
Puis sélectionnez les objets de la table 1 en commun avec la table 3, puis mettre à jour cette sélection avec la table 3...
etc.
Autre méthode :
Mettre à jour la table 1 à partir de la table 2 comme vous aviez fait,
puis, sélectionner les objets de la table 1 pour lesquels l'attribut "classe" est vide ou égal à 0, et mettre à jour cette sélection avec la table 3,
sélectionner de nouveau les objets de la table 1 pour lesquels l'attribut "classe" est vide ou égal à 0, et mettre à jour cette sélection avec la table 4...
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#6 Wed 20 November 2013 06:37
- teahupoo
- Participant occasionnel
- Date d'inscription: 17 Feb 2009
- Messages: 29
Re: mise à jour champs
Bonjour à tous les deux,
Merci pour ces réponses. J'ai choisi de sélectionner toutes mes valeurs à 0 pour toutes les classes et ensuite de mettre à jour ma sélection!
C'était pas bien compliqué au final : o
Bonne journée.
Dernière modification par teahupoo (Wed 20 November 2013 06:39)
géomaticienne
Hors ligne