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,31 +296,6 @@ class Metaestat{
296 * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) 296 * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>)
297 */ 297 */
298 function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = "",$direto=false){ 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 //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles 300 //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles
326 //a parte que contem referencias a coluna com a geometria e marcada com /*SG*//*SG*/ 301 //a parte que contem referencias a coluna com a geometria e marcada com /*SG*//*SG*/
@@ -421,15 +396,22 @@ class Metaestat{ @@ -421,15 +396,22 @@ class Metaestat{
421 } 396 }
422 397
423 //obtem o SQL que faz o acesso aos dados da media da variavel 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 if($suportaWMST == true && $direto == false){ 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 if(!empty ($filtro) && $direto == false){ 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 else{ 413 else{
432 - $sqlDadosMedidaVariavel .= " WHERE ".$dados["colunavalor"]." IS NOT NULL "; 414 + $sqlDadosMedidaVariavel .= " WHERE ".$nomevalorcalculado." IS NOT NULL ";
433 } 415 }
434 if($suportaWMST != true && $direto == false){ 416 if($suportaWMST != true && $direto == false){
435 $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao "; 417 $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao ";
@@ -445,7 +427,14 @@ class Metaestat{ @@ -445,7 +427,14 @@ class Metaestat{
445 } 427 }
446 //SQL para a primeira regiao __SQLDADOS__ ira conter os sqls dos niveis inferiores da regiao se ouver 428 //SQL para a primeira regiao __SQLDADOS__ ira conter os sqls dos niveis inferiores da regiao se ouver
447 //ZODO ajustar tipos das colunas no join para tornar mais rapida a juncao 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 " FROM ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." AS regiao ". 438 " FROM ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." AS regiao ".
450 " INNER JOIN ( __SQLDADOS__ ) ". 439 " INNER JOIN ( __SQLDADOS__ ) ".
451 " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text"; 440 " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text";
@@ -460,7 +449,14 @@ class Metaestat{ @@ -460,7 +449,14 @@ class Metaestat{
460 foreach($caminho as $idregiao){ 449 foreach($caminho as $idregiao){
461 if($idregiao != $codigo_tipo_regiao){//a regiao pai ja esta no sql 450 if($idregiao != $codigo_tipo_regiao){//a regiao pai ja esta no sql
462 $tempDadosRegiao = $this->listaTipoRegiao($idregiao); 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 "FROM ".$tempDadosRegiao["esquemadb"].".".$tempDadosRegiao["tabela"]." AS regiao ". 460 "FROM ".$tempDadosRegiao["esquemadb"].".".$tempDadosRegiao["tabela"]." AS regiao ".
465 "INNER JOIN ". 461 "INNER JOIN ".
466 "( __SQLDADOS__ )". 462 "( __SQLDADOS__ )".
ferramentas/saiku/esquemaxml.php
@@ -630,6 +630,9 @@ function dimensoesTabelas(){ @@ -630,6 +630,9 @@ function dimensoesTabelas(){
630 630
631 $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; 631 $xml .= "<Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>";
632 $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*"); 632 $incluirChaves = array("tabelamedida{$c["id_medida_variavel"]}.*");
  633 + if($c["colunavalor"] == ""){
  634 + $incluirChaves[] = "'1'::numeric as contagem";
  635 + }
633 if(count($parComposto) > 0){ 636 if(count($parComposto) > 0){
634 //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}"; 637 //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}";
635 $incluirChaves[] = implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_"; 638 $incluirChaves[] = implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_";
@@ -693,8 +696,14 @@ function dimensoesTabelas(){ @@ -693,8 +696,14 @@ function dimensoesTabelas(){
693 if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 0){ 696 if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 0){
694 $agregador = "count"; 697 $agregador = "count";
695 } 698 }
  699 + if($medida["colunavalor"] == ""){
  700 + $nomeColunaValor = "contagem";
  701 + }
  702 + else{
  703 + $nomeColunaValor = $medida["colunavalor"];
  704 + }
696 $xml .= " 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 $u = " 708 $u = "
700 <VirtualCubeMeasure cubeName='Tabela: {$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/> 709 <VirtualCubeMeasure cubeName='Tabela: {$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/>