diff --git a/docente_por_formacao.sql b/docente_por_formacao.sql
new file mode 100644
index 0000000000000000000000000000000000000000..ba86c4d877f90739c6d2210f7f3f7e587bb0da7e
--- /dev/null
+++ b/docente_por_formacao.sql
@@ -0,0 +1,85 @@
+/*
+Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre
+Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
+
+This file is part of HOTMapper.
+
+HOTMapper is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+HOTMapper is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with HOTMapper.  If not, see <https://www.gnu.org/licenses/>.
+*/
+
+-- depends: docente, turma
+-- SimCAQ: tabela de docentes por formação --
+
+CREATE TABLE docente_por_formacao AS (
+
+WITH
+    docente_total AS
+        (SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
+            municipio.id AS municipio_id, docente.dependencia_adm_id as dependencia_adm_id, 0 as tipo_formacao
+        FROM docente
+            INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
+            INNER JOIN estado ON (docente.escola_estado_id=estado.id)
+            INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
+        WHERE ((docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND (turma.tipo_turma_id <= 3))
+            AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (2, 3, 4, 5, 6, 7, 8))
+        GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.dependencia_adm_id,
+            docente.id_docente
+        ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
+        ),
+    docente_medio AS
+        (SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
+            municipio.id AS municipio_id, docente.dependencia_adm_id as dependencia_adm_id, 2 as tipo_formacao
+        FROM docente
+            INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
+            INNER JOIN estado ON (docente.escola_estado_id=estado.id)
+            INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
+        WHERE ((docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND (turma.tipo_turma_id <= 3))
+            AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (2, 3))
+        GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.dependencia_adm_id,
+            docente.id_docente
+        ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
+        ),
+    docente_superior AS
+        (SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
+            municipio.id AS municipio_id, docente.dependencia_adm_id as dependencia_adm_id, 4 as tipo_formacao
+        FROM docente
+            INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
+            INNER JOIN estado ON (docente.escola_estado_id=estado.id)
+            INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
+        WHERE ((docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND (turma.tipo_turma_id <= 3))
+            AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (4, 5))
+        GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.dependencia_adm_id,
+            docente.id_docente
+        ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
+        ),
+    docente_especializacao_mestrado_doutorado AS
+        (SELECT id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
+            municipio.id AS municipio_id, docente.dependencia_adm_id as dependencia_adm_id,
+            docente.nivel_tipo_formacao as tipo_formacao
+        FROM docente
+            INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
+            INNER JOIN estado ON (docente.escola_estado_id=estado.id)
+            INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
+        WHERE ((docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND (turma.tipo_turma_id <= 3))
+            AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (6, 7, 8))
+        GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.dependencia_adm_id,
+            docente.id_docente, docente.nivel_tipo_formacao
+        ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
+        )
+
+SELECT * FROM docente_total
+UNION ALL (SELECT * FROM docente_medio)
+UNION ALL (SELECT * FROM docente_superior)
+UNION ALL (SELECT * FROM docente_especializacao_mestrado_doutorado)
+);
diff --git a/idm.sql b/idm.sql
index 212f53a89d34c789420815472008f39268fbb4ce..c7062e43e5e47974ae16657ab992d23d099e8c0f 100644
--- a/idm.sql
+++ b/idm.sql
@@ -24,73 +24,79 @@ along with HOTMapper.  If not, see <https://www.gnu.org/licenses/>.
 CREATE TABLE indice_distribuicao_matriculas AS (
 
     WITH div_estado AS
-        (SELECT count(serie_ano_id) AS total_estado, serie_ano_id, estado_id, ano_censo, localizacao_id
+        (SELECT count(serie_ano_id) AS total_estado, serie_ano_id, estado_id, ano_censo, localizacao_id,
+            dependencia_adm_id
         FROM matricula
         WHERE ano_censo>=2017 AND tipo <= 3 AND dependencia_adm_id <=3
-        GROUP BY serie_ano_id, estado_id, ano_censo, localizacao_id),
+        GROUP BY serie_ano_id, estado_id, ano_censo, localizacao_id, dependencia_adm_id),
 
     div_estado_mod AS
         (SELECT count(serie_ano_id) AS total_estado_mod, cast(LEFT(serie_ano_id, 1) as integer) as serie_mod, estado_id,
-            ano_censo, localizacao_id
+            ano_censo, localizacao_id, dependencia_adm_id
         FROM matricula
         WHERE ano_censo >= 2017 AND tipo <= 3 AND dependencia_adm_id <= 3
-        GROUP BY serie_mod, estado_id, ano_censo, localizacao_id),
+        GROUP BY serie_mod, estado_id, ano_censo, localizacao_id, dependencia_adm_id),
     
     div_brasil AS
-        (SELECT sum(total_estado) AS total_brasil, serie_ano_id, ano_censo, localizacao_id
+        (SELECT sum(total_estado) AS total_brasil, serie_ano_id, ano_censo, localizacao_id, dependencia_adm_id
         FROM div_estado
-        GROUP BY serie_ano_id, ano_censo, localizacao_id),
+        GROUP BY serie_ano_id, ano_censo, localizacao_id, dependencia_adm_id),
 
     div_brasil_mod AS
-        (SELECT sum(total_brasil) AS total_brasil_mod, cast(LEFT(serie_ano_id, 1) as integer) as serie_mod, ano_censo, localizacao_id
+        (SELECT sum(total_brasil) AS total_brasil_mod, cast(LEFT(serie_ano_id, 1) as integer) as serie_mod, ano_censo,
+            localizacao_id, dependencia_adm_id
         FROM div_brasil
-        GROUP BY serie_mod, ano_censo, localizacao_id),
+        GROUP BY serie_mod, ano_censo, localizacao_id, dependencia_adm_id),
     
     nivel_sim1 AS
         (SELECT matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_brasil AS total_etapa,
             cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice, 1 AS nivel_simulacao,
-            matricula.localizacao_id
+            matricula.localizacao_id, matricula.dependencia_adm_id
         FROM matricula JOIN div_brasil ON matricula.serie_ano_id=div_brasil.serie_ano_id
                                       AND matricula.ano_censo=div_brasil.ano_censo
                                       AND matricula.localizacao_id=div_brasil.localizacao_id
+                                      AND matricula.dependencia_adm_id=div_brasil.dependencia_adm_id
         WHERE matricula.ano_censo>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
         GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa,
-        matricula.localizacao_id),
+            matricula.localizacao_id, matricula.dependencia_adm_id),
     
     nivel_sim2 AS
         (SELECT matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_estado AS total_etapa,
             cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice, 2 AS nivel_simulacao,
-            matricula.localizacao_id
+            matricula.localizacao_id, matricula.dependencia_adm_id
         FROM matricula JOIN div_estado ON matricula.serie_ano_id=div_estado.serie_ano_id
                                        AND matricula.estado_id=div_estado.estado_id
                                        AND matricula.ano_censo=div_estado.ano_censo
                                        AND matricula.localizacao_id=div_estado.localizacao_id
+                                       AND matricula.dependencia_adm_id=div_estado.dependencia_adm_id
         WHERE matricula.ano_censo>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
         GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa,
-        matricula.localizacao_id),
+            matricula.localizacao_id, matricula.dependencia_adm_id),
 
     nivel_sim1_mod AS
         (SELECT matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod as serie_ano_id,
             total_brasil_mod AS total_etapa, cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice,
-            1 AS nivel_simulacao, matricula.localizacao_id
+            1 AS nivel_simulacao, matricula.localizacao_id, matricula.dependencia_adm_id
         FROM matricula JOIN div_brasil_mod ON LEFT(matricula.serie_ano_id, 1)=div_brasil_mod.serie_mod
                                            AND matricula.ano_censo=div_brasil_mod.ano_censo
                                            AND matricula.localizacao_id=div_brasil_mod.localizacao_id
+                                           AND matricula.dependencia_adm_id=div_brasil_mod.dependencia_adm_id
         WHERE matricula.ano_censo>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
         GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod, total_etapa,
-        matricula.localizacao_id),
+            matricula.localizacao_id, matricula.dependencia_adm_id),
 
     nivel_sim2_mod AS
         (SELECT matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod as serie_ano_id,
             total_estado_mod AS total_etapa, cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice,
-            2 AS nivel_simulacao, matricula.localizacao_id
+            2 AS nivel_simulacao, matricula.localizacao_id, matricula.dependencia_adm_id
         FROM matricula JOIN div_estado_mod ON LEFT(matricula.serie_ano_id, 1)=div_estado_mod.serie_mod
                                            AND matricula.estado_id=div_estado_mod.estado_id
                                            AND matricula.ano_censo=div_estado_mod.ano_censo
                                            AND matricula.localizacao_id=div_estado_mod.localizacao_id
+                                           AND matricula.dependencia_adm_id=div_estado_mod.dependencia_adm_id
         WHERE matricula.ano_censo>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
         GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod, total_etapa,
-        matricula.localizacao_id)
+            matricula.localizacao_id, matricula.dependencia_adm_id)
 
 SELECT * FROM nivel_sim1 
 UNION ALL 
diff --git a/matricula_por_localizacao.sql b/matricula_por_localizacao.sql
index 5d455e8f0acc65214388b4533808be486a682bad..26465856dc675fbf30eb53a16541d90cea8d6030 100644
--- a/matricula_por_localizacao.sql
+++ b/matricula_por_localizacao.sql
@@ -25,44 +25,48 @@ CREATE TABLE matricula_por_localizacao AS (
 
 WITH
     day_count AS
-        (SELECT count(*) as dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
+        (SELECT count(*) as dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id,
+            dependencia_adm_id
          FROM matricula
          WHERE tipo<=3 AND dependencia_adm_id < 4 AND ano_censo >= 2017 AND
             (turma_turno_id IN (1, 2, 99) OR turma_turno_id IS null)
-         GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
-         ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
+         GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
+         ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
         ),
 
     night_count AS
-        (SELECT count(*) as noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
+        (SELECT count(*) as noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id,
+            dependencia_adm_id
          FROM matricula
          WHERE tipo<=3 AND dependencia_adm_id < 4 AND ano_censo >= 2017 AND turma_turno_id = 3
-         GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
-         ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
+         GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
+         ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
         )
 
 SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id,
     matricula.serie_ano_id, COALESCE(dia_total, 0) AS dia_total,
-    COALESCE(noite_total, 0) AS noite_total, matricula.localizacao_id
+    COALESCE(noite_total, 0) AS noite_total, matricula.localizacao_id, matricula.dependencia_adm_id
 FROM matricula
     LEFT JOIN day_count ON matricula.ano_censo=day_count.ano_censo AND matricula.estado_id=day_count.estado_id
         AND matricula.municipio_id=day_count.municipio_id AND matricula.serie_ano_id=day_count.serie_ano_id
         AND matricula.localizacao_id=day_count.localizacao_id
+        AND matricula.dependencia_adm_id=day_count.dependencia_adm_id
     LEFT JOIN night_count ON matricula.ano_censo=night_count.ano_censo AND matricula.estado_id=night_count.estado_id
         AND matricula.municipio_id=night_count.municipio_id AND matricula.serie_ano_id=night_count.serie_ano_id
         AND matricula.localizacao_id=night_count.localizacao_id
+        AND matricula.dependencia_adm_id=night_count.dependencia_adm_id
 WHERE matricula.ano_censo >= 2017 AND matricula.serie_ano_id IS NOT NULL
     AND matricula.tipo <= 3 AND matricula.dependencia_adm_id < 4
 GROUP BY  matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.serie_ano_id, dia_total,
-    noite_total, matricula.localizacao_id
+    noite_total, matricula.localizacao_id, matricula.dependencia_adm_id
 );
 
 -- Create serie mod
 INSERT INTO
     matricula_por_localizacao(ano_censo, estado_id, municipio_id, serie_ano_id, dia_total, noite_total,
-    localizacao_id)
+    localizacao_id, dependencia_adm_id)
 SELECT
     ano_censo, estado_id, municipio_id, LEFT(serie_ano_id, 1) as serie, sum(dia_total), sum(noite_total),
-    localizacao_id
+    localizacao_id, dependencia_adm_id
 FROM matricula_por_localizacao
-GROUP BY ano_censo, estado_id, municipio_id, serie, localizacao_id;
\ No newline at end of file
+GROUP BY ano_censo, estado_id, municipio_id, serie, localizacao_id, dependencia_adm_id;
\ No newline at end of file
diff --git a/transporte.sql b/transporte.sql
new file mode 100644
index 0000000000000000000000000000000000000000..c27ed125418429af26c8ebc3c81f9bf8590a5075
--- /dev/null
+++ b/transporte.sql
@@ -0,0 +1,146 @@
+CREATE TABLE transporte AS (
+
+WITH matricula_mod AS
+        (SELECT count(*) as total, matricula.regiao_id AS regiao_id, estado_id, estado.nome AS estado_nome, municipio_id,
+        escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural, dependencia_adm_id, dependencia_adm_priv, responsavel_transp,
+        ano_censo, transporte_vans_kombi, transporte_micro_onibus, transporte_onibus, transporte_bicicleta,
+        transporte_animal, transporte_outro, transporte_embar_0_5, transporte_embar_5_15, transporte_embar_15_35,
+        transporte_embar_35, transporte_trem_metro, transporte_escolar_publico
+        FROM matricula JOIN estado ON matricula.estado_id = estado.id
+        WHERE tipo <= 3
+        GROUP BY matricula.regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, transporte_vans_kombi,
+        transporte_micro_onibus, transporte_onibus, transporte_bicicleta, transporte_animal, transporte_outro,
+        transporte_embar_0_5, transporte_embar_5_15, transporte_embar_15_35, transporte_embar_35, transporte_trem_metro,
+        transporte_escolar_publico
+        ),
+
+    matricula_mod_total AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 0 as transporte_id
+        FROM matricula_mod
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    transporte_publico_total AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 1 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_escolar_publico = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    vans_kombi AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 2 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_vans_kombi = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    micro_bus AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 3 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_micro_onibus = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    bus AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 4 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_onibus = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    bike AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 5 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_bicicleta = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    animal_traction AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 6 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_animal = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    other_vehicle AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 7 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_outro = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    waterway_5 AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 8 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_embar_0_5 = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    waterway_15 AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 9 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_embar_5_15 = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    waterway_35 AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 10 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_embar_15_35 = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    waterway_35_upper AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 11 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_embar_35 = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
+
+    subway_train AS
+        (SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 12 as transporte_id
+        FROM matricula_mod
+        WHERE transporte_trem_metro = 1
+        GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
+        dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo)
+
+SELECT * FROM matricula_mod_total
+UNION ALL
+SELECT * FROM transporte_publico_total
+UNION ALL
+SELECT * FROM vans_kombi
+UNION ALL
+SELECT * FROM micro_bus
+UNION ALL
+SELECT * FROM bus
+UNION ALL
+SELECT * FROM bike
+UNION ALL
+SELECT * FROM animal_traction
+UNION ALL
+SELECT * FROM other_vehicle
+UNION ALL
+SELECT * FROM waterway_5
+UNION ALL
+SELECT * FROM waterway_15
+UNION ALL
+SELECT * FROM waterway_35
+UNION ALL
+SELECT * FROM waterway_35_upper
+UNION ALL
+SELECT * FROM subway_train
+);
\ No newline at end of file