Commit fb6ae2fc667e5670dc0b2832f023f6942fb8a8bc

Authored by Edmar Moretti
1 parent b8b35be8

-

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