#1 Wed 17 November 2010 16:12
- Dwhant
- Juste Inscrit !
- Date d'inscription: 13 Sep 2010
- Messages: 9
[MI 9] Mettre à jour un champ en fonction d'un autre
Bonjour à tous,
Je viens vous voir pour un petit souci, j'ai une table avec un champ numérique sur laquelle je souhaite me baser pour créer un autre champ numérique.
Par exemple, toutes les valeurs de 0 à 3 dans ma colonne d'origine prendront la valeur 0 dans ma nouvelle colonne, toutes les valeurs de 4 à 7 prendront la valeur 1 et ainsi de suite.
J'ai, à petite échelle, toujours extrait mes résultats sous excel pour trier par colonne et mettre à jour manuellement, mais je souhaiterais savoir comment faire sous MapInfo sans avoir à me coltiner cela sur un plus grand nombre de données.
Je suppose qu'il y a du "IF" dedans mais je ne maitrise malheureusement pas...
Merci de votre aide.
Dwhant.
Hors ligne
#2 Wed 17 November 2010 16:49
- Daniel
- Membre
- Lieu: Victoriaville, Québec
- Date d'inscription: 6 Sep 2005
- Messages: 2028
Re: [MI 9] Mettre à jour un champ en fonction d'un autre
Bonjour
Il y a une façon facile mais elle doit être faites pour toutes les classes.
Vous sélectionnez vos données de 0 à 3, et vous mettez à jour le résultat de cette première sélection.
Dans SÉLECTION : Origine >= 0 et Origine <= 3 donne un query 1
Mettre à jour colonne de query 1 et mettre 0 dans nouvelle colonne.
Daniel
De retour à la géomatique
Hors ligne
#3 Wed 17 November 2010 19:16
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [MI 9] Mettre à jour un champ en fonction d'un autre
Salut,
Il y a beaucoup de classes du genre 0 à 3, 4 à 7, 8 à 11 etc...
Celà va jusqu'à combien?
En te donnant le départ:
Code:
Select * from Table where Champs1>=0 and Champs1<=3 into Sel1 Update Sel1 Set Champs2=0
Ce processus peut s'automatiser en utilisant un générateur de script et en utilisant des variables:
Code:
Select * from Table where Champs1>=XXXX and Champs1<=YYYY into SelZZZZ Update SelZZZZ Set Champs2=AAAA
Pour générer toutes tes requètes --> utilisation du générateur de script --> Scriptgen
Voilà le lien --> http://rictrem.com/Scriptgen.aspx
J'ai posté pas mal d'exemples sur le forum --> Faire une recherche avec "scriptgen" ou "générateur de script" comme mot clef.
Ne pas hésiter à utiliser l'aide du logiciel qui donne quelques exemples d'utilisation.
Une précision encore --> les requètes ainsi obtenues sont à placer dans la FMB -> Fenêtre MapBasic
--> Options --> voir Fenêtre MapBasic
PS:Ca peut marcher sans le "If"
A+
Joël
Dernière modification par Spacejo (Wed 17 November 2010 19:19)
Hors ligne
#4 Fri 19 November 2010 11:14
- Dwhant
- Juste Inscrit !
- Date d'inscription: 13 Sep 2010
- Messages: 9
Re: [MI 9] Mettre à jour un champ en fonction d'un autre
Salut, merci de l'indication, je n'avais pas penser à chercher avec ces mots clés, je vais me pencher sur la question.
Je dois monter jusqu'à 12 classes environ (mon champ de départ va jusqu'à 25), je cherche en fait, à partir de la BDTopo à déterminer le nombre d'étages d'un bâtiment. Le but étant d'en calculer la SHON que j'obtiens en multipliant l'emprise au sol par le nombre de niveau et en y applicant un coefficient réducteur de 0,85.
Par exemple, si le bâtiment fait 4 mètres ou moins, j'estime qu'il y a un niveau d'habitation, 6.5 ou moins, 2 niveaux et ainsi de suite par paliers de 2.5 m...
Ce calcul me permet par la suite, à l'aide de la BD Parcellaire, d'obtenir un Coefficient d'Occupation des Sols qui me permet de comparer avec les COS mentionnés dans les PLUs. Le but étant de savoir si un zonage PLU possède un potentiel de densification ou non.
Actuellement, je le fais à petit échelle de manière manuelle sur des zones précises, mais j'aimerais automatiser la démarche afin d'avoir mes résultats sur toutes les zones du territoire sur lequel je travaille.
Je vais regarder de plus près et reviens vers vous quand j'aurais avancé. Merci
Hors ligne