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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 25 September 2008 12:48

yoyo72
Participant actif
Date d'inscription: 9 Jul 2008
Messages: 101

rapatrier des infos d'une table à une autre

Bonjour
voici mon problème j'ai actuellment une table qui se nomme "patrimoine" avec des attributs liés à des objets graphiques.J'ai une autre table "Voies" qui contient presque la même structure dont je voudrais rapatrier des informations qui sont identiques pour ces deux tables, en fait c'est pour éviter un gros travail de resaisie des mêmes données pour deux tables.Le problème est que j'ai les mêmes identifiants (notament CODE_INSEE) pour les deux tables pour tous les enregistrements donc impossible de faire une jointure
Auriez-vous une solution à ce problème;j'ai oublié de rappeler que sur les deux tables ce sont les mêmes objets géographique

Hors ligne

 

#2 Thu 25 September 2008 13:47

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: rapatrier des infos d'une table à une autre

Bonjour

Pourquoi ne pas utiliser une mise à jour en utilisant unr requête géographique comme intersect, si les polygones éléments géographiques sont identiques!

Daniel


De retour à la géomatique

Hors ligne

 

#3 Thu 25 September 2008 14:07

yoyo72
Participant actif
Date d'inscription: 9 Jul 2008
Messages: 101

Re: rapatrier des infos d'une table à une autre

j'ai essaye apparament cela ne fonctionne pas je joins les deux tables au cas ou
Merci daniel


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#4 Thu 25 September 2008 20:58

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

Re: rapatrier des infos d'une table à une autre

Bonjour
Ce sont des polylignes, en partie superposées, mais assemblées différemment
Seul l'usage de "intersects" est possible
Si vous renseignez "patrimoine" avec "voies" (qui a plus de données, en mettant "patrimoine" avant "voies" dans la requête avec "intersects") vous allez avoir un résultat faux puisque des éléments de "patrimoine" seront renseignés alors qu'ils se contentent d'intersecter (alors que seuls ceux qui sont vraiment "dessous" devraient l'être)
Il faut donc passer par de petits tampons (1 m) autour de "voies", un tampon par objet, dans une nouvelle table de même structure et utiliser une requête avec "Within"...qui renseignera 230 objets de "patrimoine"...seulement ceux qui sont "dessous"

Hors ligne

 

#5 Fri 26 September 2008 08:12

yoyo72
Participant actif
Date d'inscription: 9 Jul 2008
Messages: 101

Re: rapatrier des infos d'une table à une autre

Bonjour Maurice
Merci de ta réponse mais je suis dans l'incapacité de réaliser ta réponse, c'est un peu trop compliqué pour moi.si au cas ou tu pouvait me faire cette requête cela me rendrais énormément service...
Je te joins les deux tables au cas ou
Merci


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#6 Fri 26 September 2008 11:08

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

Re: rapatrier des infos d'une table à une autre

Je ne suis pas trop d'accord de faire du travail "à façon"...mais pour cette fois ça passe smile
Ci-joint le résultat qui remplace votre fichier joint du post précédent (déjà posté une fois !)
Il y a 560 entités et non 557 car 3 entités portent les mêmes informations (sont "doublonnées")
Votre fichier "voies" comporte en effet une entité qui a deux informations (VC404 et VC405) et cette entité "renseigne" 3 entités de "patrimoine". Je vous laisse le soin de corriger...

Hors ligne

 

#7 Fri 26 September 2008 12:27

yoyo72
Participant actif
Date d'inscription: 9 Jul 2008
Messages: 101

Re: rapatrier des infos d'une table à une autre

Merci Maurice
Pour préciser les fichiers que j'ai remis permettaient de simplement des simulations avec les vrais tables, en aucun cas de faire mon travail.Ce qui m'interesse est plus tôt la manière ou le process que tu as utilisé pour arrivé au résultat notament l'ecriture de la requête, c'est ça qui m'interresse!
J'essairai de mieux m'exprimer la prochaine fois, donc si tu as le process je suis preneur

Hors ligne

 

#8 Fri 26 September 2008 13:08

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

Re: rapatrier des infos d'une table à une autre

Dont acte:
- nettoyer la table "voies" pour éviter les doublons (cf. post précédent)
- tampons de 1 mètre autour de chaque objet de "voies" dans une nouvelle table de même structure "voies_2"
- requête select * from patrimoine,voies_2 where patrimoine.obj Within voies_2.obj into sel1
- enregistrer sel1 en patrimoine1
- inverser la sélection dans patrimoine1
- enregistrer la sélection en patrimoine2
- ajouter patrimoine2 à patrimoine1, enregistrer patrimoine1 sous patrimoine_OK, annuler les changements de patrimoine1
Patrimoine_ok est le résultat (patrimoine renseigné par voies) et toutes les tables intermédiaires peuvent être détruites (voies_2, patrimoine1, patrimoine2) par menu Table->Gestion table

Hors ligne

 

#9 Mon 29 September 2008 08:41

yoyo72
Participant actif
Date d'inscription: 9 Jul 2008
Messages: 101

Re: rapatrier des infos d'une table à une autre

Bonjour Maurice
je n'arrive pas à faire ta requête, l'a fais tu dans map basic ou selection SQL
merci

Hors ligne

 

#10 Mon 29 September 2008 09:46

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

Re: rapatrier des infos d'une table à une autre

La syntaxe utilisée dans ma réponse est celle de la fenêtre MapBasic (FMB):
- la taper dans la FMB puis 'enter' sur la ligne
nb: c'est exactement ce qui s'écrit dans la FMB (préalablement ouverte) quand on utilise le requêteur (sélection SQL)

Hors ligne

 

#11 Thu 02 October 2008 11:24

yoyo72
Participant actif
Date d'inscription: 9 Jul 2008
Messages: 101

Re: rapatrier des infos d'une table à une autre

Merci Maurice
cela fonctionne à merveille..

Hors ligne

 

Pied de page des forums

Powered by FluxBB