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"]."]'/> | ... | ... |