#1 Fri 05 May 2006 12:17
- Nicolas VIGNON
- Participant actif
- Lieu: Ceyras (34)
- Date d'inscription: 5 Sep 2005
- Messages: 118
intersection de 2 tables
Bonjour,
J'ai 2 tables :
une table siège des exploitations : chaque siège est un point avec un code exploitant
une table parcelle groupée : chaque polygone représente l'ensemble des parcelles exploitées par un agriculteur et possède un code exploitant (le même que celui de la table siège des exploitant)
Je cherche à savoir pour chaque exploitation, qu'elle est la surface se trouvant à moins de 1 kilomètre de son siège (sachant que j'ai plus de 400 exploitations).
Merci d'avance,
Nicolas VIGNON
tercia@ tercia.fr
Hors ligne
#2 Fri 05 May 2006 14:13
- AST
- Participant actif
- Lieu: Marseille
- Date d'inscription: 20 Dec 2005
- Messages: 53
Re: intersection de 2 tables
Tu pourrais créer un tampon de 1km pour chaque exploitation : tu selectionnes tes objets puis onglet "objet" et "tampon". Là tu définis la taille de ton tampon et son genre (sphérique ou cartésien). Pour ton cas je pense qu'il faudra choisir cartésien.
Ensuite avec les polygones nouvellement créés, tu fais une selection SQL avec en opérateur "Intersects" ou "Whithin".
Voilà si j'ai bien compris l'objet de ta demande...
Hors ligne
#3 Fri 05 May 2006 14:56
- Nicolas VIGNON
- Participant actif
- Lieu: Ceyras (34)
- Date d'inscription: 5 Sep 2005
- Messages: 118
Re: intersection de 2 tables
Pour le tampon pas de problème..
c'est ensuite que ca se complique comment lui indiquer dans la requête SQL de calculer l'intersection entre le tampon et les exploitations que lorsque le code EA est identique.
Bonne journée
Nicoals VIGNON
tercia@ tercia.fr
Hors ligne
#4 Fri 05 May 2006 16:07
- diophamidou
- Participant assidu
- Date d'inscription: 18 Jan 2006
- Messages: 243
Re: intersection de 2 tables
de toute facon qd tu fais une intersection avec la fonction Intersects, la jointure se fera par les obj et pas par l'identifiant.
Voila un peu le type de requete après avoir créé ton tampon
Selection / Sélection SQL
Dans Table selectionner les tables : Table_Parcelle, Table_Tampon_Exploitation
Dans colonne tu peux laisser * pour selectionner ts les champs si non tu lui indiques les champs que tu veux
Dans Critéres tu prends Table_Parcelle.obj INTERSECTS Table_Tampon_Exploitation. obj
Tu peux donner un nom à ta requete et le tour est joué si j'ai bien compris.
Hors ligne
#5 Fri 05 May 2006 16:13
- Nicolas VIGNON
- Participant actif
- Lieu: Ceyras (34)
- Date d'inscription: 5 Sep 2005
- Messages: 118
Re: intersection de 2 tables
je souhaiterais justement que l'intersection se fasse en fontion de l'identifiant car je souhaite que seul la surface d'intersection du groupe de parcelles correspondant au siège de l'exploitation soit calculée
Merci quand même et bonne journée
Nicolas VIGNON
tercia@ tercia.fr
Hors ligne
#6 Fri 05 May 2006 17:59
- Nicolas VIGNON
- Participant actif
- Lieu: Ceyras (34)
- Date d'inscription: 5 Sep 2005
- Messages: 118
Re: intersection de 2 tables
rebonsoir,
Est ce que qq sait si cela est possible sous mapinfo ?
merci
Nicolas Vignon
tercia@ tercia.fr
Hors ligne
#7 Fri 05 May 2006 23:36
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: intersection de 2 tables
Dans Critéres tu prends Table_Parcelle.obj INTERSECTS Table_Tampon_Exploitation. obj
AND table_parcelle.Id_exploitant = table_parcelle.id_exploitant
Il s'agit juste de rajouter la condition de jointure sur l'exploitant. Les conditions multiples sont valables.
Celà devrais suffire à ta demande.
Hors ligne
#8 Tue 09 May 2006 11:53
- Nicolas VIGNON
- Participant actif
- Lieu: Ceyras (34)
- Date d'inscription: 5 Sep 2005
- Messages: 118
Re: intersection de 2 tables
Bonjour,
Merci pour votre aide,
j'avance mais après vérification des résultats obtenus par la requête écrite ci dessous, je me retrouve avec des valeurs erronées, j'ai donc commis une erreur qqpart....mais ou?
Select surf_EA_inf_1_km_du_siège.code_EA, areaoverlap ( surf_EA_inf_1_km_du_siège.obj , tampon_1_km_sièges_des_EA.obj ) from surf_EA_inf_1_km_du_siège, tampon_1_km_sièges_des_EA where surf_EA_inf_1_km_du_siège.obj intersects tampon_1_km_sièges_des_EA.obj and surf_EA_inf_1_km_du_siège.code_EA=tampon_1_km_sièges_des_EA.code_exploitant into selection
Browse * From Selection
Bonne journée,
Nicolas VIGNON
tercia@ tercia.fr
Hors ligne
#9 Tue 09 May 2006 12:13
- Nicolas VIGNON
- Participant actif
- Lieu: Ceyras (34)
- Date d'inscription: 5 Sep 2005
- Messages: 118
Re: intersection de 2 tables
Ca marche !!!
le résultat était en mile carré Grrrrrrrrrrrr..
il faut le multiplier par 258.999 pour obtenir la surface d'intersection en hectare
@+
Nicolas VIGNON
tercia@ tercia.fr
Hors ligne
#10 Tue 09 May 2006 13:19
- diophamidou
- Participant assidu
- Date d'inscription: 18 Jan 2006
- Messages: 243
Re: intersection de 2 tables
Tu peux faire une mise à jour de ta collone pour cela :
Table/mettre à jour une colonne
- dans table à mettre à jour tu selectionne la table concernée
- dans utiliser une colonne de la table : tu reprends la mm table
- Dans colonne à mettre à jour tu sélectionnes le champ ou tu as la superficie
- Dans valeur tu choisis expression puis Fonction --> Area tu remplaces "sq mi" par "hectare"
Je penses que ca devrait marcher
Hors ligne
#11 Tue 09 May 2006 15:51
- lagnion
- Participant actif
- Date d'inscription: 5 Sep 2005
- Messages: 64
Re: intersection de 2 tables
il faut faire un set area units "hectare" dans la fenetre mapbasic avant de
faire la selection. (dans d'autres fonctions, l'unité est demandée dans la
syntaxe de la fonction, mais pas là!)
annick lagnion
DDE29
Hors ligne