Voir la version complète : [MapInfo 7.x] Requête surface
Bonjour,
J'ai une question simple.J'ai une table commune et une table forêt et je veux obtenir la surface de forêt par commune. Quelle requête dois-je réaliser?
Merci d'être très précis dans vos réponses car je ne maîtrise pas trop les requêtes et je sais qu'un petit rien les met facilement en péril...
Merci d'avance!
Yasmine
Disposes tu d'une table "foret" dans lesquelles il y a le num de la commune ou simplement de deux tables supperposées ?
Dans le deuxièmes cas il faut faire une requête géographique où tu vas rechercher les polygione de forêt se touvant sur telle ou telle commune.
Tu devras dans un premier temps le faire par commune
Select * from tabforet, tabcommune WHERE tabcommune.nom = "macommue" and tabforet.obj intersects tabcommune.obj
Ainsi tu obtiendra les objets foret se trouvant sur la commune "macommune" ...
ne reste plus qu'à calculer la surface ...
bon courage
Je dispose simplement de deux tables superposées...
Mais je voudrais obtenir automatiquement la surfacede forêt pour ttes les communes et non une à une (il y en a des centaines!!!)
Pour faire toutes les communes en même temps, tu va galerer.
Il faut donc utiliser un traitement itératif (boucle sur toutes tes communes)
Tu récupères toutes tes communes, et après avec une boucle tu affectes le nom d'une commune a une variable et tu place cette variable dans le code de thomas a la place de "ma commune".
Bon courage
Ben ça me semble bien compliqué tout ça...
J'ai essayé autrement mais je bloque. J'ai découpé mes forêts par commune. Comment je fais pour avoir la somme de la surface des objets forêts par commune?
Bonjour,
Table - Mettre à Jour colonne
Table à mettre à jour : commune
Utiliser une colonne de la table :forêt
Colonne à mettre à jour : somme surface forêt de la commune
Calculer : Sum
Valeur : Champ surface de la table forêt
Jointure
soit par identifiant commune si ta table forêt en contient un
soit par jointure spatiale : forêt contenue dans commune
Cordialement
Merci beaucoup. Malheureusement cela ne fonctionne pas vraiment... Il prend en compte les forêts juste à la limite...
Mais j'ai trouvé une autre solution: sélection sql
sum (CartesianArea(foret_decoupe.obj, "hectare"))
where Commune.obj contains foret_decoupe.obj
Voili voilà...
effectivement "contains" et intersects ne prenne pas etjs en comptes les même objets graphiques.
--> Contains = contient entièrement
--> Intersects = qui croise, s'entrecoupe
@ +++
le principal c'est que ça marche!!
un grand merci à vous de votre aide (une fois de plus :wink: )
Powered by vBulletin® Version 4.2.0 Copyright © 2019 vBulletin Solutions, Inc. Tous droits réservés