1 votos

Subexpresión no considerada al utilizar funciones de agregación (QGIS 3.8)

Estoy intentando utilizar aggregate() o relation_aggregate() para rellenar una etiqueta en un compositor de impresión impulsado por el atlas utilizando QGIS 3.8, pero estoy teniendo problemas con ambos.

Mi objetivo es mostrar el número de hijos que satisfacen una determinada consulta en el un atlas que es alimentado por el padre.

Primero creé una relación en las propiedades del proyecto, guardé, cerré y volví a abrir el proyecto.

He añadido una etiqueta a mi compositor de impresión, y he probado la siguiente sintaxis:

Utilizando el agregado

[%aggregate('child_layer', 'count', "child_layer_field" is 'OUI', attribute($currentfeature, 'foreign_key') = attribute(, 'primary_key'))%]

Uso de relation_aggregate:

[% relation_aggregate('relation_key', 'count', "child_layer_field" is 'OUI')%]

En ambos casos, la etiqueta muestra un número, pero es simplemente el número total de hijos relacionados con el padre (sin tener en cuenta que la expresión "campo_hijo" es 'OUI').

¿Estoy entendiendo mal cómo funciona esto o estoy haciendo algo mal? ¿Debería funcionar también con la versión 2.18?

3voto

she_weeds Puntos 126

Es necesario poner todas las condiciones de filtrado juntas en el único parámetro (así attribute($currentfeature... ) AND "child_layer_field" = 'OUI' )

Y la expresión a agregar -el tercer parámetro, después del tipo de agregado- debe ser un campo o una simple modificación del mismo (por ejemplo title("child_layer_field") o "child_layer_field" * 10 ) no es una condición lógica.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X