#1 Thu 18 October 2012 11:03
- sivumidouze
- Juste Inscrit !
- Date d'inscription: 6 Oct 2011
- Messages: 2
requête sql cours d'eau
Bonjour,
Je m'excuse par avance si cette question s'est déjà posée sur le forum mais je ne maîtrise pas encore le fonctionnement de ce site.
Ma question : je travaille sur map info et je dois fournir un chiffrage au mètre linéaire exact et par cours d'eau traversant chaque commune du bassin versant.
Lorsque je fais ma requête pour que cela me donne le linéaire total et par cours d'eau sur la commune X, j'ai remarqué que les segments pris en compte ne se limiter pas forcément à la commune X, parfois j'ai des segments dépassant de 2km la commune qui sont comptabilisés ! D'ou une marge d'erreur trop importante (ce linéaire me sert au calcul des participations financières de chacune des communes donc je dois être le plus juste possible.
Quelle requête dois je faire pour arriver à sélectionner uniquement les segments compris dans la commune X ?
Petite précision, je ne suis pas un pro du SIG ! Donc un exemple précis me sera très utile !
En vous remerciant par avance
D.M.
Hors ligne
#2 Thu 18 October 2012 11:55
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: requête sql cours d'eau
Bonjour,
Pour compliquer encore un peu la problématique, vous avez probablement des tronçons qui appartiennent à deux communes : la rivière fait la frontière. Selon le type d'action, certains syndicats de rivière calculent la répartition financière en linéaire de berge plutôt qu'en linéaire de rivière.
Les pros de MapInfo vous expliqueront mieux que moi comment mettre en pratique le découpage
Renaud Mouche
Hors ligne
#3 Thu 18 October 2012 14:45
- Ceva
- Participant occasionnel
- Lieu: Biem Assi
- Date d'inscription: 14 Oct 2009
- Messages: 20
Re: requête sql cours d'eau
Bonjour,
tu dois montrer ta requette pour qu’on puisse bien t'aider.
Dernière modification par Ceva (Thu 18 October 2012 15:07)
Chef de projet SIG
Hors ligne
#4 Thu 18 October 2012 18:49
- Ben64
- Participant occasionnel
- Lieu: Oloron-Ste-Marie
- Date d'inscription: 19 May 2007
- Messages: 37
Re: requête sql cours d'eau
Bonjour,
Il vous faut d'abord découper vos tronçons par commune. Premièrement vous sélectionnez votre couche "cours d'eau" modifiable. Ensuite, Menu Objet -> Définir cible. Une fois l'opération réalisée, vous sélectionnez votre couche "commune" à partir de laquelle vous voulez découper vos tronçons. Une fois que votre couche "cours d'eau" est définie comme cible et que votre couche "commune" est sélectionnée, vous allez dans Objet -> Découper.
Une fois vos tronçons découpés, vous pourrez les sélectionner par commune. Il vous suffira de les assembler pour avoir le linéaire de tous les tronçons à l'intérieur du territoire communal.
Désolé, l'explication est un peu brêve, mais je ne peux m'attarder plus longtemps.
Bon courage!
Hors ligne
#5 Thu 18 October 2012 22:32
- Domi C.
- Juste Inscrit !
- Date d'inscription: 8 Oct 2007
- Messages: 3
Re: requête sql cours d'eau
Bonsoir,
Pour compléter les explications de Ben64, je détaille la procédure que j'utiliserai :
- pour plus de sécurité, faire une copie de la table des cours d'eau,
- modifier la structure de cette table pour ajouter un champ "Code_INSEE", un champ "Nom_commune" et un champ "Long_Cours_eau",
- rendre cette couche "Modifiable", tout sélectionner et la définir comme "Cible",
- sélectionner toutes les communes,
- lancer la commande "Objet" "Découper",
- remplir l'attribut "Code_INSEE" de la table des Cours d'eau par la fonction "Table" "Mettre à jour colonne". Pour cela faire une jointure géographique des objets Cours d'eau contenus dans les objets Communes et remplir le champ "Code_INSEE" de la table Cours d'eau avec le champ contenant cette valeur dans la table Commune,
- renouveler la même opération pour le nom des communes,
- remplir l'attribut "Long_Cours_eau" également avec "Table" "Mettre à jour colonne" en utilisant la fonction "LongObj" (je ne me rappelle du libellé exact)
- enregistrer la table Cours d'eau.
Lancer une requête SQL sur la table Cours d'eau, dans l'ordre suivant :
- lister les attributs permettant de différencier les rivières (noms et code), "Code_INSEE", "Nom_Commune", sum("Long_Cours_eau", "m")
- sans critère,
- en indiquant de grouper les valeurs par "Code_INSEE",
- mettre le résultat dans une table à nommer
Le résultat recherché devrait apparaitre !
(Ayant fait de mémoire, les intitulés des fonctions ne sont pas rigoureusement exacts)
Adishatz
Hors ligne
#6 Mon 22 October 2012 16:02
- sivumidouze
- Juste Inscrit !
- Date d'inscription: 6 Oct 2011
- Messages: 2
Re: requête sql cours d'eau
Bonjour à vous,
Je vous remercie pour vos réponses respectives et je vais mettre à exécution vos propositions. Je vous tiens au courant.
Adishatz
Hors ligne
#7 Tue 25 November 2014 10:43
- Elie45
- Participant actif
- Date d'inscription: 7 Nov 2014
- Messages: 57
Re: requête sql cours d'eau
Ce post correspond parfaitement à mon soucis sauf que je travail avec un tampon de cours d'eau. J'ai bien respecté la manip mais lorsque je veux remplir le champs de ma table (ex CODE INSEE) mapinfo ne renseigne que les objets d'un seul tenant compris dans une commune. Pour préciser si ce n'est pas clair, lorsqu'une commune contient deux bout d'affluents séparés, l'attribut code INSEE n'est pas renseigné après ma mise à jour Colonne.
Avez-vous l'astuce pour remédier à ça?
Hors ligne
#8 Tue 25 November 2014 12:13
- nicoboud
- Membre
- Lieu: Nantes
- Date d'inscription: 12 Oct 2007
- Messages: 860
Re: requête sql cours d'eau
Bonjour,
Il est probable que la majeur partie de votre tampon soit dans la commune voisine.
Quel opérateur géographique utilisez-vous pour faire votre mise à jour Colonne ?
Nicolas.
Co-modérateur du forum Mapinfo
Utilisateur Mapinfo et QGIS
Hors ligne