#1 Wed 01 July 2015 16:57
- grego
- Juste Inscrit !
- Date d'inscription: 10 Jan 2008
- Messages: 6
QGIS : Utilisation de la fonction attribute
Bonjour,
J'aimerais savoir comment utiliser cette fonction.
Je ne sais pas si c'est celle qui me convient.
Je souhaite afficher une étiquette selon la valeur d'un champ d'une table mise à jour régulièrement (tous les mois).
Concrètement je souhaite afficher le nom de tous les départements qui ont un taux de chômage supérieur au miens.
J'ai une table CHOM_DEP contenant les champs DEPARTEMNT, TX_CHOMAGE...
Pas de problème j'utilise la fonction CASE dans le calculateur d'expressions.
CASE WHEN "TX_CHOMAGE"> 'valeur de mon département' THEN "DEPARTEMNT"
Je pense que la fonction attribute correspond à ma recherche mais je n'arrive pas à comprendre comment elle fonctionne.
Il faudrait en gros pouvoir remplacer 'valeur de mon département' par une requête SQL : select TX_CHOMAGE from CHOM_DEP where DEPARTEMNT='mon departement'
Merci d'avance pour votre aide
Hors ligne
#2 Wed 01 July 2015 18:47
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3930
Re: QGIS : Utilisation de la fonction attribute
Bonjour,
en effet il ferait le job. Ça donnerait quelque chose comme :
Code:
CASE WHEN "TX_CHOMAGE"> attribute(getFeature('CHOM_DEP', 'DEPARTEMNT', 'mon departement' ),'TX_CHOMAGE' ) THEN "DEPARTEMNT" END
attribute permet de récupérer la valeur d'attributs d'une entité, donc il lui faut une entité, ce que fait getFeature (qui, soit dit en passant, ne prend que la première entité qui remplit la condition à savoir ici: dans la couche CHOM_DEP, celle qui a la valeur 'mon departement' dans la colonne "DEPARTMNT").
Hors ligne
#3 Mon 06 July 2015 15:49
- grego
- Juste Inscrit !
- Date d'inscription: 10 Jan 2008
- Messages: 6
Re: QGIS : Utilisation de la fonction attribute
Bonjour,
C'est parfait ça marche !
En fait QGIS ne respecte pas sa propre logique habituelle dans cette formule : à savoir normalement le nom d'un champ est entre double cote (guillemets) mais là ce sont des simples cote ...
Merci pour votre réponse rapide
Hors ligne