[QGIS-es] Suma de condiciones. CASE WHEN en Calculadora de campos.

Matías Taborda Barroso taborda.barroso en gmail.com
Vie Oct 31 03:44:52 PDT 2014


Hola. A ver si me podeis echar un cable....

Tengo un .shp de puntos con una tabla de atributos de la siguiente forma...

CUADRI                  TRANS       LET

30STH500600             1             50
30STH500600             1             50
..........                     ...            ...
...........                    ...            ...
.
.
.
30STH500600             2              10
30STH500600             2              10
30STH500600             2              10
..........                     ...            ...
...........                    ...            ...
.
.
30STH500600             3              20
30STH500600             3              20
30STH500600             3              20
..........                     ...            ...
...........                    ...            ...
.

29SQC450600             1              10



Y así sucesivamente, varios miles de datos similares. Y ahora quiero
establecer otro campo (LET_TOTAL) que me asigne un valor a cada uno de los
campos CUADRI que sea el resultante de la suma del valor LET de los campos
TRANS, es decir en el caso que he expuesto, el valor debería ser
50+10+20....

Para ello he intentado utilizar la siguiente sentencia en la calculadora de
campos....

LET_TOTAL =

*CASE WHEN* "CUADRI"='30STH500600' *AND* "TRANS"=1 *THEN* LET *END*

Con esta sentencia obtengo el valor 50, entonces he pensado que si repito
la sentencia, cambiando el valor de TRANS y hago las correspondientes
sumas, obtendría el valor deseado, 80. Para hacer el encadenamiento de
sentencias, las agrupo con paréntesis.

*(CASE WHEN* "CUADRI"='30STH500600' *AND* "TRANS"=*1* *THEN* LET *END)+(**CASE
WHEN* "CUADRI"='30STH500600' *AND* "TRANS"=*2* *THEN* LET *END)+(**CASE
WHEN* "CUADRI"='30STH500600' *AND* "TRANS"=*3* *THEN* LET *END)*


Bueno pues nada, obtengo valor NULL, pero curiosamente y por error,
descubrí que si utilizo varias veces el mismo valor TRANS, si me hace la
suma. Debe haber una manera de redactar la sentencia correctamente, pero no
se por donde probar, parentesis, anidado, utilizanción de ELSE.....

Gracias y perdón por el tostón.....
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.osgeo.org/pipermail/qgis-es/attachments/20141031/cca2df7a/attachment-0002.html>


Más información sobre la lista de distribución QGIS-es