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

Carlos López PSIG carlos.lopez en psig.es
Mar Nov 4 13:21:12 PST 2014


Hola Matías,
No se si te he entendido...

Pero sospecho que la herramienta o complemento "Group Stats" te irá bien
para hacer el calculo de sumas por cada valor del campo A y luego utilices
la propiedad de "Unión" para enlazar el cálculo resultante del Group Stats.

Ya nos contarás, un saludo,


* <http://www.psig.es>*

*Carlos López Quintanilla*

www.psig.es
carlos.lopez en psig.es
+34 699.680.261



El 31 de octubre de 2014, 11:44, Matías Taborda Barroso <
taborda.barroso en gmail.com> escribió:

> 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.....
>
> _______________________________________________
> QGIS-es mailing list
> QGIS-es en lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.osgeo.org/pipermail/qgis-es/attachments/20141104/73471afb/attachment-0002.html>


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