Message posté par : aheurion
----------------------------------------
Bonjour insay,
En effet ça ne fonctionnera pas ainsi car tu essaies d'appliquer ton OR aux résultats
des aggregates (OR fonctionne avec des booléens : 1 OR 0 = 1, 1 OR 1 = 1, 0 OR 0 = 0 mais
ici ça essaie de faire 'resultat_1' OR 'resultat_2', tes résultats étant
des chaînes de caractères (car tu aggregate avec un concatenate_unique) le OR ne
fonctionne pas.
Je pense qu'il faut découper en 2 l'expression :
- d'abord tu fais les aggregate pour récupérer les résultats 1 et 2
- ensuite tu regardes s'ils sont tous les deux null ou non
Ici l'expression with_variable va être pratique :
with_variable('nom_variable', valeur_variable, suite_de_l_expression)
où tu indiqueras en variable les résultats de tes aggregates :
-----------------
Code :
with_variable('resultat_1',
aggregate('Couche_Point_1','concatenate_unique',"Attribut_couche_point_1",intersects(buffer($geometry,
0.000005),end_point(geometry(@parent)))),
with_variable('resultat_2',
aggregate('Couche_Point_2','concatenate_unique',"Attribut_couche_point_2",intersects(buffer($geometry,
0.000005),end_point(geometry(@parent)))),
........cf code ci-dessous...............
))
-----------------
Et dans le reste de l'expression tu regardes ce que tu fais en fonction des résultats
avec un CASE WHEN THEN END (tu utilises tes variables en utilisant le @ : @resultat_1,
@resultat_2) :
-----------------
Code :
CASE
WHEN @resultat_1 is null AND @resultat_2 is null THEN null /*s'il ne trouve rien dans
aucune des deux couches on laisse le champ vide dans la ligne*/
WHEN @resultat_1 is null AND @resultat_2 is not null THEN @resultat_2 /*s'il trouve un
résultat uniquement dans 2, il prend cette valeur*/
WHEN @resultat_1 is not null AND @resultat_2 is null THEN @resultat_1 /*idem mais pour
1*/
WHEN @resultat_1 is not null AND @resultat_2 is not null THEN .... /*Ben là à toi de voir
quoi prendre s'il trouve un résultat pour les deux : le plus grand, le plus petit,
concaténer les deux ? etc.*/
END
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=345120#p345120
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net