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 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 06 March 2024 16:14

ladymaga
Juste Inscrit !
Date d'inscription: 10 Feb 2022
Messages: 6

QGIS 3.28: Jointure attributaire sur champ calcule

Bonjour,

Je démarre sur Qgis et donc tâtonne encore sur des choses certainement très simples (et pour lesquelles je n'ai pas trouvé de réponse avec la loupe).

Voilà mon souci:
j'ai une couche ponctuelle avec de nombreux attributs (table 1), et une couche surfacique avec simplement un id et un nom d'entité (table 2).
je souhaite faire une jointure attributaire, jusque là tout va bien, mais pour ramener un champ calculé (en fait une concaténation de plusieurs champs de ma table 1) dans ma table 2. Et là........... ben rien du tout! il ne se passe rien! (alors que si je ramène par la même jointure un autre champ tout se passe bien)
Les champs de départ et d'arrivée ont la même config (string longueur 250), les champs clé doivent correspondre puisque j'arrive à rapatrier n'importe quel autre champ que ma chaine concaténée.

Pouvez-vous m'éclairer?  c'est certainement très bête, mais je bloque ^^
Merci à vous.

Hors ligne

 

#2 Thu 07 March 2024 10:22

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

Re: QGIS 3.28: Jointure attributaire sur champ calcule

Bonjour,

en fait une concaténation de plusieurs champs de ma table 1


C'est un champ qui existe déjà dans table1? calculé en dur (et sauvegardé dans la table déjà), ou virtuel?

Les champs de départ et d'arrivée ont la même config (string longueur 250),


De quels champs vous parlez? A part les champs clés qui doivent correspondre, il n'y a aucun besoin d'avoir autre chose qui corresponde, puisque l'idée est de rapatrier les champs de l'une à côté de ceux de l'autre.

Hors ligne

 

#3 Thu 07 March 2024 13:18

ladymaga
Juste Inscrit !
Date d'inscription: 10 Feb 2022
Messages: 6

Re: QGIS 3.28: Jointure attributaire sur champ calcule

Bonjour SANTANNA,

Et merci de me répondre.


C'est un champ qui existe déjà dans table1? calculé en dur (et sauvegardé dans la table déjà), ou virtuel?


Oui, c'est un champ créé et enregistré dans table1, et qui concatène plusieurs autres champs de cette même table.

De quels champs vous parlez? A part les champs clés qui doivent correspondre, il n'y a aucun besoin d'avoir autre chose qui corresponde, puisque l'idée est de rapatrier les champs de l'une à côté de ceux de l'autre.


Effectivement, je parle bien des deux champs (champ clé) , qui font correspondre les deux tables attributaires entre elles, je ne me soucie pas du format des autres champs. Ces deux champs, donc, ont bien le même format. Je ne comprends donc pas pourquoi je ne peux pas effectuer ma jointure attributaire.

Hors ligne

 

#4 Thu 07 March 2024 15:05

LPlante
Participant occasionnel
Date d'inscription: 17 Nov 2021
Messages: 44

Re: QGIS 3.28: Jointure attributaire sur champ calcule

Bonjour,
Un bout de code sur la jointure pourrait nous aider à y voir plus clair!

Petite note si vous utilisez la fonction aggregate de ce type     
    AGGREGATE(
            layer:='table1',  aggregate:='concat',  expression:="champs1"||"champs2"||"champs3" ,  filter:= id= attribute(@parent, 'id')
     )

Si je dis pas de bétise, si l'un des champs1/2 ou 3 est null, toute la concatenation des champs renverra null
Utilisez plutot   expression:=CONCAT("champs1","champs2","champs3")   ou un replace

Hors ligne

 

#5 Fri 08 March 2024 11:11

ladymaga
Juste Inscrit !
Date d'inscription: 10 Feb 2022
Messages: 6

Re: QGIS 3.28: Jointure attributaire sur champ calcule

Bonjour

Un bout de code sur la jointure pourrait nous aider à y voir plus clair!


je n'utilise pas de code, comme dit plus haut je débute dans Qgis, donc pour le moment je me contente des fonctions de base, en l'occurrence la fonction Jointures des propriétés de la couche . Je vais essayer de mettre une capture d'écran de ce que j'ai fait, sachant que si je coche n'importe quel autre champ de la partie "champs joints", le champ coché est bien rapatrié.

Utilisez plutot   expression:=CONCAT("champs1","champs2","champs3")


c'est bien cette fonction que j'utilise pour calculer mon champ:concat( "Culture" ,' / ', "Producteur", ' / ',"Variété",' / ', "Surface se" ,' / ', "Date de se" ,' / ', "Technicien"     ), et il se calcule correctement

Hors ligne

 

Pied de page des forums

Powered by FluxBB