Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 27 July 2015 10:58

levenez
Participant occasionnel
Date d'inscription: 20 Jul 2015
Messages: 10

QGIS : Requête SpatiaLite

Bonjour,

J'aimerais effectuer une requête SQL permettant d'ajouter des valeurs dans un champ B pour certains objets présent dans un champ A. Pour faire plus clair, j'ai une colonne "Nature", avec différents objets (routes, autoroutes, chemin...). J'ai créée une colonne Largeur, ou, pour les autoroutes par exemple, je dois rentrer la largeur, qui est prédéfini: 33m, pour les routes, 10m... avez vous une idée? Sachant que je ne peux pas tout faire à la main, je travaille sur les réseaux de transports de 2 départements, donc il y a beaucoup de données...

Merci d'avance

Hors ligne

 

#2 Mon 27 July 2015 11:24

toma82
Participant occasionnel
Lieu: Grenoble
Date d'inscription: 4 Jan 2007
Messages: 35

Re: QGIS : Requête SpatiaLite

Bonjour,

Pourquoi ne pas passer par la calculatrice de champs dans QGIS ?

Sinon en requête SQL je pense que cela donnerait ça

Code:

UPDATE myTable SET largeur = 33 WHERE myTable.nature ='autoroute';

Le cookbook est assez complet je trouve pour commencer avec SpatiaLite
https://www.gaia-gis.it/spatialite-3.0. … index.html

Bonne journée !

Hors ligne

 

#3 Mon 27 July 2015 11:38

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3807

Re: QGIS : Requête SpatiaLite

Bonjour,
Pour compléter la réponde de toma82, avec la calculatrice de champs, et pour autant que le champ nature soit bien structuré comme tel, ça donnerait quelque chose comme

Code:

case when "nature" = 'autoroute' then 33
when "nature" = 'route' then 10
when ...
end

Hors ligne

 

#4 Mon 27 July 2015 11:51

levenez
Participant occasionnel
Date d'inscription: 20 Jul 2015
Messages: 10

Re: QGIS : Requête SpatiaLite

Bonjour,

Merci pour ta réponse, il semble qu'il ne reconnaisse pas ma colonne...

Je n'ai pas utilisé la calculatrice car je ne sais pas quoi lui rentrer^^

Bonne journée

Hors ligne

 

#5 Mon 27 July 2015 11:59

toma82
Participant occasionnel
Lieu: Grenoble
Date d'inscription: 4 Jan 2007
Messages: 35

Re: QGIS : Requête SpatiaLite

Pour compléter la réponse de Santanna, tu peux aussi débuter par une sélection attributaire dans QGIS :

Code:

 "nature" = 'autoroute'

Puis effectuer un calcul de champs via la calculatrice, en cochant "mettre à jour les entités sélectionnées" et "mise à jour d'un champ existant" (ton champ largeur) et indiquer la largeur dans le tableau d'expression.

Hors ligne

 

#6 Mon 27 July 2015 12:02

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3807

Re: QGIS : Requête SpatiaLite

Euh.. Faudrait peut-être préciser un peu plus ce que tu as fait et qui ne marche pas et te fait penser qu'il ne reconnait pas ta colonne.
Pour ce qui est de la calculatrice de champ, le lien que j'indiquais explique à peu près comment ça marche (notamment la partie Expression). La formule que j'ai mise et que tu devras adapter selon tes données consiste à dire au moteur que :
- pour toutes mes entités dont la colonne nature est égale à autoroute, renseigne 33 (implicitement dans la colonne largeur qui aura été préalablement sélectionnée dans la fenêtre),
- si la valeur nature est route, mets-y plutôt 10
- et ainsi de suite

Hors ligne

 

#7 Mon 27 July 2015 20:30

levenez
Participant occasionnel
Date d'inscription: 20 Jul 2015
Messages: 10

Re: QGIS : Requête SpatiaLite

Bonsoir,

Alors, après moult tentatives, les 2 techniques fonctionnent! Merci beaucoup!
Le fait que SpatiaLite ne reconnaisse pas ma colonne était normal, je l'avais ajouté après, et il ça n'était pas passé...

Merci à vous

Bonne soirée

Hors ligne

 

Pied de page des forums

Powered by FluxBB