Commit fb6ae2fc667e5670dc0b2832f023f6942fb8a8bc
1 parent
b8b35be8
Exists in
master
and in
7 other branches
-
Showing
3 changed files
with
37 additions
and
32 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/php/classe_metaestat.php
| ... | ... | @@ -296,31 +296,6 @@ class Metaestat{ |
| 296 | 296 | * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) |
| 297 | 297 | */ |
| 298 | 298 | function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = "",$direto=false){ |
| 299 | - /* Modelo de SQL | |
| 300 | - SELECT regiao.*,sum(j.valorcalculado) OVER (PARTITION BY regiao.co_municipio) AS valorcalculado | |
| 301 | - FROM i3geo_metaestat.municipios AS regiao | |
| 302 | - INNER JOIN ( | |
| 303 | - SELECT regiao.co_municipio AS cod_regiao,sum(j.valorcalculado) AS valorcalculado | |
| 304 | - FROM i3geo_metaestat.distritos_manaus AS regiao | |
| 305 | - LEFT JOIN | |
| 306 | - ( | |
| 307 | - SELECT regiao.cod_dis AS cod_regiao,sum(j.valorcalculado) AS valorcalculado | |
| 308 | - FROM i3geo_metaestat.bairros_manaus AS regiao | |
| 309 | - LEFT JOIN | |
| 310 | - ( | |
| 311 | - SELECT cod AS cod_regiao,sum(valor) AS valorCalculado | |
| 312 | - FROM i3geo_metaestat.obitos_maternos_manaus12 | |
| 313 | - WHERE ano IN ('2012') AND cod_mes IN ('1','2') | |
| 314 | - GROUP BY cod_regiao | |
| 315 | - ) | |
| 316 | - AS j ON j.cod_regiao = regiao.cod GROUP BY regiao.cod_dis | |
| 317 | - ) | |
| 318 | - AS j ON j.cod_regiao = regiao.cod_dis GROUP BY regiao.co_municipio | |
| 319 | - ) | |
| 320 | - AS j ON j.cod_regiao = regiao.co_municipio | |
| 321 | - */ | |
| 322 | - | |
| 323 | - | |
| 324 | 299 | // |
| 325 | 300 | //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles |
| 326 | 301 | //a parte que contem referencias a coluna com a geometria e marcada com /*SG*//*SG*/ |
| ... | ... | @@ -421,15 +396,22 @@ class Metaestat{ |
| 421 | 396 | } |
| 422 | 397 | |
| 423 | 398 | //obtem o SQL que faz o acesso aos dados da media da variavel |
| 424 | - $sqlDadosMedidaVariavel = "SELECT ".$dados["colunaidgeo"]." AS cod_regiao,$tipoconta(".$dados["colunavalor"].") AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 399 | + if($dados["colunavalor"] == ""){ | |
| 400 | + $nomevalorcalculado = "'1'::numeric"; | |
| 401 | + } | |
| 402 | + else{ | |
| 403 | + $nomevalorcalculado = $dados["colunavalor"]; | |
| 404 | + } | |
| 405 | + | |
| 406 | + $sqlDadosMedidaVariavel = "SELECT ".$dados["colunaidgeo"]." AS cod_regiao,$tipoconta(".$nomevalorcalculado.") AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 425 | 407 | if($suportaWMST == true && $direto == false){ |
| 426 | - $sqlDadosMedidaVariavel = "SELECT $sqlWMST as dimtempo,".$dados["colunaidgeo"]." AS cod_regiao,".$dados["colunavalor"]." AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 408 | + $sqlDadosMedidaVariavel = "SELECT $sqlWMST as dimtempo,".$dados["colunaidgeo"]." AS cod_regiao,".$nomevalorcalculado." AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 427 | 409 | } |
| 428 | 410 | if(!empty ($filtro) && $direto == false){ |
| 429 | - $sqlDadosMedidaVariavel .= " WHERE ".$filtro . "AND ".$dados["colunavalor"]." IS NOT NULL "; | |
| 411 | + $sqlDadosMedidaVariavel .= " WHERE ".$filtro . " AND ".$nomevalorcalculado." IS NOT NULL "; | |
| 430 | 412 | } |
| 431 | 413 | else{ |
| 432 | - $sqlDadosMedidaVariavel .= " WHERE ".$dados["colunavalor"]." IS NOT NULL "; | |
| 414 | + $sqlDadosMedidaVariavel .= " WHERE ".$nomevalorcalculado." IS NOT NULL "; | |
| 433 | 415 | } |
| 434 | 416 | if($suportaWMST != true && $direto == false){ |
| 435 | 417 | $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao "; |
| ... | ... | @@ -445,7 +427,14 @@ class Metaestat{ |
| 445 | 427 | } |
| 446 | 428 | //SQL para a primeira regiao __SQLDADOS__ ira conter os sqls dos niveis inferiores da regiao se ouver |
| 447 | 429 | //ZODO ajustar tipos das colunas no join para tornar mais rapida a juncao |
| 448 | - $sqlIntermediario = "SELECT (j.valorcalculado) AS ".$dados["colunavalor"].", __COLUNASSEMGEO__". | |
| 430 | + //no caso de ser um contador forcado | |
| 431 | + if($dados["colunavalor"] == ""){ | |
| 432 | + $nomeColunaValor = "contagem"; | |
| 433 | + } | |
| 434 | + else{ | |
| 435 | + $nomeColunaValor = $dados["colunavalor"]; | |
| 436 | + } | |
| 437 | + $sqlIntermediario = "SELECT (j.valorcalculado) AS ".$nomeColunaValor.", __COLUNASSEMGEO__". | |
| 449 | 438 | " FROM ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." AS regiao ". |
| 450 | 439 | " INNER JOIN ( __SQLDADOS__ ) ". |
| 451 | 440 | " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text"; |
| ... | ... | @@ -460,7 +449,14 @@ class Metaestat{ |
| 460 | 449 | foreach($caminho as $idregiao){ |
| 461 | 450 | if($idregiao != $codigo_tipo_regiao){//a regiao pai ja esta no sql |
| 462 | 451 | $tempDadosRegiao = $this->listaTipoRegiao($idregiao); |
| 463 | - $temp = "SELECT regiao.".$dadosColunas[$idregiao]["colunaligacao_regiaopai"]." AS cod_regiao,sum(j.valorcalculado) AS valorcalculado ". | |
| 452 | + //para contador forcado | |
| 453 | + if($dados["colunavalor"] == ""){ | |
| 454 | + $nomevalorcalculado = "'1'::numeric"; | |
| 455 | + } | |
| 456 | + else{ | |
| 457 | + $nomevalorcalculado = "j.valorcalculado"; | |
| 458 | + } | |
| 459 | + $temp = "SELECT regiao.".$dadosColunas[$idregiao]["colunaligacao_regiaopai"]." AS cod_regiao,sum(".$nomevalorcalculado.") AS valorcalculado ". | |
| 464 | 460 | "FROM ".$tempDadosRegiao["esquemadb"].".".$tempDadosRegiao["tabela"]." AS regiao ". |
| 465 | 461 | "INNER JOIN ". |
| 466 | 462 | "( __SQLDADOS__ )". | ... | ... |
ferramentas/saiku/esquemaxml.php
| ... | ... | @@ -630,6 +630,9 @@ function dimensoesTabelas(){ |
| 630 | 630 | |
| 631 | 631 | $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; |
| 632 | 632 | $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*"); |
| 633 | + if($c["colunavalor"] == ""){ | |
| 634 | + $incluirChaves[] = "'1'::numeric as contagem"; | |
| 635 | + } | |
| 633 | 636 | if(count($parComposto) > 0){ |
| 634 | 637 | //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}"; |
| 635 | 638 | $incluirChaves[] = implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_"; |
| ... | ... | @@ -693,8 +696,14 @@ function dimensoesTabelas(){ |
| 693 | 696 | if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 0){ |
| 694 | 697 | $agregador = "count"; |
| 695 | 698 | } |
| 699 | + if($medida["colunavalor"] == ""){ | |
| 700 | + $nomeColunaValor = "contagem"; | |
| 701 | + } | |
| 702 | + else{ | |
| 703 | + $nomeColunaValor = $medida["colunavalor"]; | |
| 704 | + } | |
| 696 | 705 | $xml .= " |
| 697 | - <Measure name='id_medida_variavel_".$medida["id_medida_variavel"]."' caption='".converte($medida["nomemedida"])."' column='".$medida["colunavalor"]."' aggregator='".$agregador."' /> | |
| 706 | + <Measure name='id_medida_variavel_".$medida["id_medida_variavel"]."' caption='".converte($medida["nomemedida"])."' column='".$nomeColunaValor."' aggregator='".$agregador."' /> | |
| 698 | 707 | "; |
| 699 | 708 | $u = " |
| 700 | 709 | <VirtualCubeMeasure cubeName='Tabela: {$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/> | ... | ... |