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

Rencontres QGIS 2026

L'appel à participation est ouvert jusqu'au 17 novembre 2025!

#1 Thu 30 October 2025 17:02

ckiko13
Participant assidu
Date d'inscription: 20 Feb 2007
Messages: 369

QGIS 3.40: Incrementer un champ texte en fonction d un autre champ

Bonjour

J'ai une couche de points avec 2 champs:
- rue
- id_rue

Ma table ressemblerait à ceci:
RUE         RUE_ID
rueA        rueA_1
rueA        rueA_2
rueB        rueB_1
rueC        rueC_1
rueC        rueC_2
rueC        rueC_3
rueC        rueC_4

Lorsque j'ajoute un nouveau point par exemple dans la rueA, j'aimerais lorsque je remplis le champs RUE, que le champ RUE_ID prenne la  suite de la 'numérotation', ici: rueA_3.

J'ai regardé du côté des fonctions ARRAY_LAST, mais je ne débouche sur rien.

Auriez-vous des pistes à me proposer?

Merci

Hors ligne

 

#2 Tue 04 November 2025 16:13

ckiko13
Participant assidu
Date d'inscription: 20 Feb 2007
Messages: 369

Re: QGIS 3.40: Incrementer un champ texte en fonction d un autre champ

Bonjour

J'ai trouvé 2 solutions:
1] La toolbox et l'outil AGREGATION en mettant comme fonction d'agrégation LAST_VALUE, dans le champ dont je veux connaître le dernier identifiant.

2] La création d'une couche virtuelle avec ce script:

Code:

SELECT
   <champ_rue>,
    MAX(CAST(REGEXP_SUBSTR(<champ_code>, '[0-9]+') AS INTEGER)) AS max_num
FROM
    <ma_couche>
GROUP BY
   <champ_rue>;

L'avantage de la couche virtuelle est qu'elle met à jour automatiquement le champ_code, donc ça me permet de le connaître; à défaut de pouvoir l'implémenter directement dans la couche source.

Dernière modification par ckiko13 (Tue 04 November 2025 16:28)

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo