#1 Thu 18 September 2008 12:21
- NEJJARI
- Participant actif
- Lieu: METZ
- Date d'inscription: 12 Feb 2007
- Messages: 99
SQL Mapinfo
Bonjour
J'ai joint une image de mon problème avec la structure de mes tables. Il faut jeter un coup d'oeil avant de lire la suite
Je précise que la structure des deux champs communs aux deux tables (section et num_parcelle) est identique.
1) Ce que je souhaite c'est arriver à ajouter surtout le champ "propriétaires" (et les autres champs si cela est possible) de la table issue d'excel à ma table vecteur parcellaire.
2) Lorsque il y a plusieurs propriétaires sur la table excel pour la même parcelle sur la table vecteur, est-il possible d'avoir cette info sur cette dernière séparée par un _ ou /
3/ Faut-il faire cette manip déja sur excel (cad rassembler les différents propriétaires de la même parcelle dans une même cellule), dans ce cas, faut-il faire ça manuellement sous excel ou il y a moyen de faire ça automatiquement ...et si des lumières en excel peuvent me guider dans la manip, merci d'avance.
Merci
Dernière modification par Maurice (Thu 18 September 2008 12:52)
Hors ligne
#2 Thu 18 September 2008 12:56
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: SQL Mapinfo
Salut NEJJARI,
Pourquoi n'effectues tu pas une jointure sur tes deux tables avec comme champ commun soit section soit Num_Parc
En espèrant que cela t'aide
A+ (Collègue de l'Est )
Joël
Hors ligne
#3 Thu 18 September 2008 13:07
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: SQL Mapinfo
Bonjour
Pas si simple...
Déjà, la jointure doit se faire sur la concaténation "section+num_parcel"
Ensuite il faudrait utilisé les vertus du rapport de tableau croisé dynamique d'Excel pour préparer une feuille où apparait pour un "section+num_parcel" une colonne proprio_1, une autre proprio_2 jusqu'à proprio_x (colonnes qu'on peut ensuite réunir en une seule ("proprio_1 + proprio_2 + ...proprio_n")
Enfin comment faire quand l'identifiant n'est pas unique ?? Par exemple sur votre image, côté proprio, il y a deux parcelles section 1 num_parcel 7 qui ont des contenances différentes. Dans ce cas la jointure ne marchera pas
Hors ligne
#4 Thu 18 September 2008 13:13
- NEJJARI
- Participant actif
- Lieu: METZ
- Date d'inscription: 12 Feb 2007
- Messages: 99
Re: SQL Mapinfo
Pourquoi n'effectues tu pas une jointure sur tes deux tables avec comme champ commun soit section soit Num_Parc
En fait j'ai déja essayé cela mais ça bloque...il me donne une query avec 2/3 de la table non remplie.
J'ai oublié de mentionner aussi dans mon message que le numéro de parcelle se dédouble plusieurs fois puisqu'il est fonction aussi des sections (section 1 = parcelle 1, 2, 3,...), (section 2 = parcelle 1, 2, 3...). Je pense donc qu'il faut prendre aussi en compte la section.
Merci (collègue du temps gris )
Hors ligne
#5 Thu 18 September 2008 13:55
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: SQL Mapinfo
Enfin comment faire quand l'identifiant n'est pas unique ?? Par exemple sur votre image, côté proprio, il y a deux parcelles section 1 num_parcel 7 qui ont des contenances différentes. Dans ce cas la jointure ne marchera pas
En regardant bien la différence viens de la subdivision. La jointure devant ce faire avec les parcelles renseignée avec le champ subdivision vide.
Donc comme le dit Maurice avec "section+num_parcel" et subdivision = ''
Mais il faut faire le tri. un petit tri automatique sur la feuille. On copie les données filtrée dans une autre feuille et il ne reste plus qu'à traiter le problème des multipropriétaires.
Hors ligne
#6 Thu 18 September 2008 14:07
- NEJJARI
- Participant actif
- Lieu: METZ
- Date d'inscription: 12 Feb 2007
- Messages: 99
Re: SQL Mapinfo
Pas si simple...
Vous avez raison, c'est que parfois je trouve sur ce fameux tableau Excel du géomètre avec : prenant
l'exemple de la parcelle 7
section parcelle proprio
1 7 A
1 7 femme de A
1 7 A
1 7 femme de A
1 7 A
1 7 femme de A
Je ne comprend pas pourquoi ils les citent 6 fois pour la même parcelle !!!
J'ai l'impression que je vais faire cela manuellement. Si vous (le grand, le magnifique Maurice Nadal dis que c'est pas SI SIMPLE, moi je dis c'est pas possible !!! et donc je pense que je vais reprendre les anciennes méthodes (cellule par cellule !!) quel bonheur
Quant à Excel...c'est une autre histoire, mais là je dis : c'est pas simple !!!
Merci Maurice
Hors ligne
#7 Thu 18 September 2008 14:16
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: SQL Mapinfo
Bonjour,
Comme l'a déjà dit Maurice, il faut modifier la table parcellaire pour que chaque objet ait un identifiant unique.
Si cette étude se fait sur une seule commune, il faut concaténer
"section+num_parcel"
. Si il y plusieurs communes, alors il faut rajouter le n° insee des communes à cet identifiant : INSEE+Section+num_parcelle.
Ensuite le fichier "PROPRIO_Conthil" contient apparemment plus d'un type de doublon : une ligne par propriétaire et par subdivision de parcelle.
Par exemple, avec une seule parcelle subdivisée en 2 et un seul propriétaire, il y 3 lignes de données. Avec une seule parcelle subdivisée en deux et deux proprio, il y a au moins 4 lignes de données (6 lignes, si les deux proprio possèdent les deux subdivisions), etc.
Pour moi, à part le faire sous forme de tableau croisé dynamique sous Excel avant de passer sous MapInfo (comme indiqué par Maurice en ayant autant de colonnes que de proprio différents), je ne vois pas d'autres méthodes "automatiques".
Nicolas.
PS : dans la série des doublons ...comme j'ai mis du temps à rédiger ma réponse je n'avais pas vu que Damien B avait déjà répondu... Désolé !
Dernière modification par Nicolas Boudesseul (Fri 19 September 2008 07:58)
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne
#8 Thu 18 September 2008 14:24
- NEJJARI
- Participant actif
- Lieu: METZ
- Date d'inscription: 12 Feb 2007
- Messages: 99
Re: SQL Mapinfo
En regardant bien la différence viens de la subdivision
Exactement c'est la subdivison qui fait cette différence. En fait c'est de l'info détaillé (pour la parcelle et son occupation du sol). L'exemple que j'ai donné correspond don à la même parcelle avec sa surface totale pour Mr et Mme (2 lignes). Cette parcelle est divisée en deux parties (JARDIN et PRES). Le jardin est cité deux fois (2 lignes) et PRES deux fois (2 lignes). Bon, je sais ce qui m'attend avant d'exposer mon problème. Désolé si j'avais du mal à comprendre la structure de la feuille excel du géomètre avant de balancer mon problème. Je vais faire un peu de nétoyage dans ce fichier excel et si problème persiste, je reviendrais avec ma valise...Merci
Hors ligne
#9 Fri 19 September 2008 12:22
- NEJJARI
- Participant actif
- Lieu: METZ
- Date d'inscription: 12 Feb 2007
- Messages: 99
Re: SQL Mapinfo
Bonjour
J'ai pu (grâce à vos conseils) résoudre mon problème. Voici les étapes. Les experts certes seront résoudre le problème en moins d'étapes, mais bon, ça peut servir les moins experts :
1/comme me la conseillé Maurice, un passage par le tableau croisée dynamique était obligatoire pour régler le problème de plusieurs proprio pour la même parcelle (marie et femme, 2 ou 3 frères...), en plus du problème de la subdivision de chaque parcelle à 3 sous-ensembles : 1 = parcelle total, 2 = JARDINS par exemple et 3 = PRES. En fait le 1 = 2+3. J'ai repris l'organisation d'un exemple (parcelle 7)
section parcelle proprio
1 7 A
1 7 femme de A
1 7 A
1 7 femme de A
1 7 A
1 7 femme de A
Avec le tableau croisé dynamique, j'ai eu cette forme :
A_________B_________C
Ligne1- section parcelle proprio
Ligne2- 1 7 A
Ligne3- 7 femme de A
Il a fallu donc mettre la cellule "Femme de A" devant la cellule A et concaténer les deux sur une colonne. J'ai procédé par cette petite formule : =SI(A3;"";C2&" - "&C3)
Et le tour est joué...mon tableau est prêt pour être importer sous MI.
Ensuite c'est par une SQL que je reporte ici :
Colonnes : *
Tables : PARCELLAIRE, PROPRIO
Critères : PARCELLAIRE.PROPRIETAIRE = PROPRIO.PROPRIETAIRE where PARCELLAIRE.SECTION = PROPRIO.SECTION And PARCELLAIRE.NUM_PARCELLE = PROPRIO.PARCELLE
Tous c'est bien passé, quelques parcelles n'ont pas été pris en compte, elles n'avais pas de numero!!!
Je pense qu'il y a mieu et plus court, mais bon... on ne peut tous jouer ans la cour des grands
Merci
Hors ligne
#10 Fri 19 September 2008 12:48
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: SQL Mapinfo
Merci pour le suivi...et bravo !!
Hors ligne