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

GEODATA DAYS 2024

#1 Sat 05 January 2019 15:43

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

QGIS: Création d'attributs spécifiques dans une base de données

Bonjour à tous,

Je suis en train de créer des champs sur une base de données avec la calculatrice de champs.

J'ai 2 questions :
- je souhaiterais créer un attribut Identifiant contenant la chaine de caractères BDRef_ suivie d'un numéro qui s'incrémente automatiquement. Par exemple, si j'ai 100 objets, les identifiants prendront la valeur BDRef_001 jusqu’à BDRef_100. Je sais faire pour BDRef_ ('BDRef_') mais je sèche pour la formule magique fournissant le numéro qui s'incrémente.
- la calculatrice de champ s'ouvre à partir d'une couche, comment faire pour, lors de la création d'un attribut, aller pointer vers un attribut d'une autre couche?

Merci beaucoup d'avance de vos conseils.

Hors ligne

 

#2 Sat 05 January 2019 18:58

laurent00
Participant assidu
Date d'inscription: 6 Aug 2007
Messages: 394

Re: QGIS: Création d'attributs spécifiques dans une base de données

bonsoir
- pour la première question essayer avec un

Code:

'BDRef_'  ||  $id
ou
'BDRef_'  ||  $row_num

voir dans les comentaires de la calculatrice ce à quoi cela correspond

- pour appeler l'attribut d'une autre couche, il faut faire avant une jointure entre les 2 couches

LJ

Dernière modification par laurent00 (Sat 05 January 2019 18:59)

Hors ligne

 

#3 Sat 05 January 2019 19:44

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Création d'attributs spécifiques dans une base de données

La première expression fonctionne (pas la deuxième).
Merci beaucoup.

Hors ligne

 

#4 Sat 05 January 2019 20:38

laurent00
Participant assidu
Date d'inscription: 6 Aug 2007
Messages: 394

Re: QGIS: Création d'attributs spécifiques dans une base de données

@row_number

LJ

Hors ligne

 

#5 Sun 06 January 2019 11:37

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Création d'attributs spécifiques dans une base de données

J'ai essayé, c'est très curieux, l'aperçu du résultat est correct mais quand je clique sur OK, toutes les valeurs de mon nouveau champ sont à NULL (ce n'est pas le cas avec $id). Mais bon, ça marche avec $id, c'est le principal.

J'ai une autre petite question, savez-vous s'il est possible de créer un attribut satisfaisant à plusieurs conditions :
Je souhaiterais créer un attribut qui me renvoie :
- Appariement géométrique 1 m si l'attribut distance est <1m
- Appariement géométrique 2.5m si l'attribut distance est compris entre 1m et 2.5m
- Pas_appariement sinon

J'ai testé cela, mais j'ai le droit à Expression invalide :
CASE WHEN ( "distance" <1 ) then 'Appariement géométrique 1 m' else when  (( "distance" >1 )  and ( "distance" <2.5)) then 'Appariement géométrique 2.5m' else 'Pas_appariement' end

Encore merci de votre aide.

Hors ligne

 

#6 Sun 06 January 2019 15:41

laurent00
Participant assidu
Date d'inscription: 6 Aug 2007
Messages: 394

Re: QGIS: Création d'attributs spécifiques dans une base de données

a priori pas de parenthèse et un seul Else

Code:

CASE 
     WHEN "distance" < 1 THEN  'Appariement géométrique 1 m' 
     WHEN "distance" > 1  and "distance" <2.5 THEN 'Appariement géométrique 2.5m'
     ELSE 'Pas_appariement' 
END

LJ

Dernière modification par laurent00 (Sun 06 January 2019 15:43)

Hors ligne

 

#7 Sun 06 January 2019 16:03

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Création d'attributs spécifiques dans une base de données

Parfait, merci !!!

Hors ligne

 

Pied de page des forums

Powered by FluxBB