[Qgis-user] Rule Based Symbology with aggregate Function
Jürg Lindauer
Juerg.Lindauer at sz.ch
Mon Dec 16 08:05:53 PST 2019
Hi Stefan
The IN operator didn't like arrays. But i've found the solution.
array_contains( string_to_array( aggregate( layer:='alpperimeter20190607152251688', aggregate:='concatenate', expression:= pk , filter:=selected = '1', concatenator:=char(44))), attribute( $currentfeature , 'id_alpperimeter')) = true
Now i get the expected feature in the rule based symbology.
Thanks, Juerg
Von: Stefan Giese <Stefan.Giese at wheregroup.com>
Gesendet: Montag, 16. Dezember 2019 15:06
An: Jürg Lindauer <Juerg.Lindauer at sz.ch>; 'qgis-user at lists.osgeo.org' <qgis-user at lists.osgeo.org>
Betreff: Re: [Qgis-user] Rule Based Symbology with aggregate Function
Hi Jurg,
you need to make an array first, your statement should be:
"id_alpperimeter" IN string_to_array((aggregate( layer:='alpperimeter20190607152251688', aggregate:='concatenate', expression:= "pk" , filter:=selected = '1', concatenator:=concat( char(39), char(44), char(39)))))
Mit freundlichen Grüßen
Stefan Giese
Projektleiter/Consultant
*********************************************
Das WhereGroup-Team wünscht Ihnen ein frohes
Weihnachtsfest und ein glückliches Jahr 2020!
*********************************************
WhereGroup GmbH
Schwimmbadstr. 2
79100 Freiburg
Germany
Fon: +49 (0)761 / 519 102 - 61
Fax: +49 (0)761 / 519 102 - 11
stefan.giese at wheregroup.com<mailto:stefan.giese at wheregroup.com>
www.wheregroup.com<http://www.wheregroup.com>
Geschäftsführer:
Olaf Knopp, Peter Stamm
Amtsgericht Bonn, HRB 9885
Am 16.12.2019 um 14:54 schrieb Jürg Lindauer:
Hi
I'm trying to create a rule based symbology with
"id_alpperimeter" IN (aggregate( layer:='alpperimeter20190607152251688', aggregate:='concatenate', expression:= "pk" , filter:=selected = '1', concatenator:=concat( char(39), char(44), char(39))))
But there are no results in there.
The rule based Symbology is ok, when i write the list directly:
"id_alpperimeter" IN ('258eef41-8120-45a5-a3d9-6ceae1e98e42', 'a882577f-eee2-4191-aa3b-2c4635bac70b')
The aggregate function alone gives me the expected list:
aggregate( layer:='alpperimeter20190607152251688', aggregate:='concatenate', expression:= "pk" , filter:=selected = '1', concatenator:=concat( char(39), char(44), char(39))) Result: '258eef41-8120-45a5-a3d9-6ceae1e98e42', 'a882577f-eee2-4191-aa3b-2c4635bac70b'
What i'm doing wrong? Isn't possible to connect the 'IN' Operator with the aggreagte Function?
I'm using QGIS 3.4.11
Regards, Juerg Lindauer
Amt für Landwirtschaft
Abt. Agrarmassnahmen und Bodenrecht
Hirschistrasse 15
Postfach 5182
6431 Schwyz
Telefon: 041 819 15 17
E-Mail: juerg.lindauer at sz.ch<mailto:juerg.lindauer at sz.ch>
Internet: www.sz.ch/landwirtschaft<http://www.sz.ch/landwirtschaft>
_______________________________________________
Qgis-user mailing list
Qgis-user at lists.osgeo.org<mailto:Qgis-user at lists.osgeo.org>
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20191216/1ae22249/attachment.html>
More information about the Qgis-user
mailing list