2 votos

¿Puedo tener una columna de autoincremento compartida por dos capas?

Tengo dos capas, una de puntos "foo" y otra de polígonos "bar", cada una tiene una columna "foobar_n" y una columna datetime.

Se trata de capas de estudio para su uso en QField, y el resultado final requerido es que la columna "foobar_n" sea secuencial en función de cuándo se tomó el objeto punto/polígono.

Actualmente aplico estos números de forma retroactiva mediante un script de python utilizando la columna de fecha de cada capa.

Sin embargo, ¿es posible aplicar un CASE WHEN argumento a las columnas "foobar_n" en cada capa para que numere secuencialmente como encuesta?

La opción de hacerlo manualmente durante la encuesta no es práctica.

2voto

Rivers Puntos 19

Sí que puedes. En su valor por defecto para foobar_n, utilice la siguiente expresión

Max(aggregate('foo','max', "foobar_n"), aggregate('bar','max', "foobar_n"),0)+1

aggregate() devuelve un valor agregado (por ejemplo, máximo, recuento, suma, etc.) de las características de la otra capa. La expresión contiene un aggregate() para cada capa y el valor cero, dentro de una función Max(). El valor 0 es para acomodar el caso donde no hay características con valores en foobar_n. Luego agrego 1 al resultado para obtener el siguiente en la secuencia.

Espero que eso ayude.

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