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 [email protected] http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es
