====== Documentação do Projeto ====== ^ Histórico de Alterações ^^^^ ^Data ^Versão ^Descrição ^Autor | |04/09/2019 |1.0 |Criação da documentação modelo |[[:start:desenvolvimento:biografia:pessoal:rodrigo_arnaldo_kreuzberg|Rodrigo Arnaldo Kreuzberg]] | |11/09/2019 |1.1 |Documentação da Dimensão CNAE |[[:start:desenvolvimento:biografia:pessoal:hudson_fernando_mendes_de_franca|HUDSON FERNANDO MENDES DE FRANÇA]] | |11/09/2019 |1.2 |Documentação da Dimensão IBGE Subsetor |[[:start:desenvolvimento:biografia:pessoal:hudson_fernando_mendes_de_franca|HUDSON FERNANDO MENDES DE FRANÇA]] | |13/09/2019 |1.3 |Documentação da Dimensão Empregado (Cargas dimensões) |[[:start:desenvolvimento:biografia:pessoal:hudson_fernando_mendes_de_franca|HUDSON FERNANDO MENDES DE FRANÇA]] | |16/09/2019 |1.4 |Correção da Documentação da Dimensão Empregado - Correção visual da tabela Dimensão x Indicadores |[[:start:desenvolvimento:biografia:pessoal:hudson_fernando_mendes_de_franca|HUDSON FERNANDO MENDES DE FRANÇA]] | |18/09/2019 |1.5 |Documentação da Dimensão Ocupação |[[:start:desenvolvimento:biografia:pessoal:rodrigo_arnaldo_kreuzberg|Rodrigo Arnaldo Kreuzberg]] | |20/09/2019 |1.6 |Inclusão da periodicidade da fonte de dados |[[:start:desenvolvimento:biografia:pessoal:rodrigo_arnaldo_kreuzberg|Rodrigo Arnaldo Kreuzberg]] | |23/09/2019 |1.7 |Documentação da Dimensão Tempo |[[:start:desenvolvimento:biografia:pessoal:hudson_fernando_mendes_de_franca|HUDSON FERNANDO MENDES DE FRANÇA]] | |09/10/2019 |1.8 |Atualização das dimensões |[[:start:desenvolvimento:biografia:pessoal:hudson_fernando_mendes_de_franca|HUDSON FERNANDO MENDES DE FRANÇA]] | |11/10/2019 |1.9 |Atualização das dimensões e inserção da fato emprego |[[:start:desenvolvimento:biografia:pessoal:rodrigo_arnaldo_kreuzberg|Rodrigo Arnaldo Kreuzberg]] | |14/10/2019 |1.10 |Documentação da Tabela Fato, da Dimensão Tempo e Revisão das demais dimensões com inserção de novos prints das mesmas. |[[:start:desenvolvimento:biografia:pessoal:abdenildo_deividy_sobreira_dos_santos|Abdenildo Deividy Sobreira dos Santos]] | |16/10/2019 |1.11 |Atualização da documentação, inclusão da topologia lógica de rede e inclusão do link dos Dashboards |[[:start:desenvolvimento:biografia:pessoal:abdenildo_deividy_sobreira_dos_santos|Abdenildo Deividy Sobreira dos Santos]] | ===== Canvas ===== A ideia do BMC ou do Quadro de Modelos de Negócios é fazer o Business Plan, um Plano de Negócio macro, ou seja, planejar e visualizar as principais demandas de um negócio, para qualquer setor, de uma forma muito mais rápida e barata do que fazer um Business Plan no modo tradicional, como um primeiro rabisco. A relização do canvas para o Data Mart de Emprego ocorreram em dois encontros nos dias 22, 29 e 30 de Julho de 2019 e com os seguintes envolvidos: * Thalles - SEDI * Ederson - SEDI * Heraclito Ferreira - SEDI * Lucas Lemos - SEDI * Maico Moreira - EpR * [[:start:desenvolvimento:biografia:pessoal:rodrigo_arnaldo_kreuzberg|Rodrigo Kreuzberg - EpR]] * David - EpR **O produto dos encontros está diponível neste **{{:start:projetos:projetos_dev:sedi_data_mart_emprego:canvas_-_datamartemprego.pdf|link}} ===== Matriz de Necessidades ===== ==== Indicadores ==== ^Qual o total de admissões? |Total de Admissões realizadas no Estado de Rondônia, campo UF valor [11], é considerada admissão todos os registros na base de dados do CAGED cujo campo Admitidos/Desligados contenha o valor [ 1 ] | ^Qual o total de desligamentos? |Total de Desligamentos realizadas no Estado de Rondônia, campo UF valor [11], é considerada admissão todos os registros na base de dados do CAGED cujo campo Admitidos/Desligados contenha o valor [ 2 ] | ^Qual o saldo mensal? |Resultado to Total de Admissões subtraindo-se o Total de Demissões, mês a mês | **DIMENSÕES** {{:start:projetos:projetos_dev:sedi_data_mart_emprego:tabela_01.png }} ---- ===== Identificação e Validação das fontes ===== {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:tabela_02.png }} ---- ===== Modelagem ===== ==== Matriz Dimensão x Indicador ==== ^Indicadores x Dimensões ^Tempo ^Empregado ^CNAE ^Regiões Geográficas ^Ocupação ^Total de Admissão | ^ Total de Admissão | X | X | | | X | | ^ Total de desligamento | X | X | | | X | | ^ Saldo mensal | X | X | | | X | | ==== Validação com o cliente ==== A plenária realizada no dia 12 de Agosto de 2019 aprovou a modelagem realizada pelo Time Baymax. ===== ETL - Extração, Transformação e Carregamento ===== ==== Carregar a Stagin Area ==== Os arquivos utilizados para realização da Stagin Area estão disponíveis no [[https://gitlab.detic.ro.gov.br/detic/sql-data-tools/etl-data-mart-emprego|Gitlab Detic]]. ==== Tratar os dados ==== **ETL - Dimensões**{{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dimensoes_cagedest.png }}**ETL - Dimensão tempo**{{ :start:projetos:projetos_dev:sedi_data_mart_emprego:etl_dim_tempo.png }}**Carga Fato** {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:etl_ft_emprego_cagedest.png }} ==== Carregar as dimensões ==== ^ dim_cbo_2002_ocupacao ^^^^| | ^ Classificação | **Dimensão (X)** ||||Fato ( ) | ^ Descrição |Armazena os dados referente a Classificação Brasileira de Ocupações (CBO) publicada em 2002, apresentada na tabela de layout do CAGED |||| | ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | | | codigo | Código referente a Classificação Brasileira de Ocupações disponibilizada na tabela de Layout do CAGED. Apresentada na tabela de layout do CAGED. | int | - | PK, Identity | | | descricao | Descrição referente a Classificação Brasileira de Ocupação disponibilizada na tabela de Layout do CAGED. Apresentada na tabela de layout do CAGED. | varchar | 200 | Not null | | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_cbo_2002_ocupacao.png?670x431 }} ---- ^ dim_classe_10 ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente a Classificação Nacional de Atividades Econômicas (CNAE). Apresentada na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | | codigo | Código referente a Classificação Nacional de Atividades Econômicas (CNAE). Apresentada na tabela de layout do CAGED | varchar | 15 | PK | | descricao | Descrição referente a Classificação Nacional de Atividades Econômicas (CNAE). Apresentada na tabela de layout do CAGED | varchar | 200 | Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_classe_10.png?680x441 }} ---- ^ dim_cnae_20_subclas ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente a Classificação Nacional de Atividades Econômicas (CNAE) versão 2.0, apresentada na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | | codigo | Código referente a CNAE disponibilizada na tabela de Layout do CAGED. Apresentada na tabela de layout do CAGED | varchar | 15 | PK | | descricao | Descrição referente a CNAE disponibilizada na tabela de Layout do CAGED. Apresentada na tabela de layout do CAGED | varchar | 200 | Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_cnae_20_subclas.png?754x403 }} ---- ^ dim_cnae_2_classe ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente a Classificação Nacional de Atividades Econômicas (CNAE) versão 2.0. Conforme apresentada na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |codigo |Código referente a CNAE disponibilizada na tabela de Layout do CAGED. Apresentada na tabela de layout do CAGED |varchar |15 |PK | |descricao |Descrição referente a CNAE disponibilizada na tabela de Layout do CAGED. Apresentada na tabela de layout do CAGED |varchar |200 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_cnae_2_classe.png?790x480 }} ---- ^ dim_ibge_subsetor ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente ao subsetor do Instituto Brasileiro de Geografia e Estatística (IBGE). Apresentado na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |valor_na_fonte |Código referente ao subsetor determinado pelo IBGE. Apresentado na tabela de layout do CAGED |int |- |PK | |categoria |Descrição referente ao subsetor determinado pelo IBGE. Apresentando na tabela de layout do CAGED |varchar |67 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_ibg_subsetor.png }} ---- ^ dim_mesorregiao ^^^^^ ^ Classificação | Dimensão ( X) Fato ( ) |||| ^ Descrição |Armazena os dados referente a mesorregião divulgada pelo Instituto Brasileiro de Geografia e Estatística (IBGE). Apresentado na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |codigo |Código referente a mesorregião determinada pelo IBGE. Apresentado na tabela de layout do CAGED |int |- |PK | |descricao |Descrição referente a mesorregião determinada pelo IBGE. Apresentando na tabela de layout do CAGED |varchar |200 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_mesorregiao.png }} ---- ^ dim_microrregiao ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente a microrregião divulgada pelo Instituto Brasileiro de Geografia e Estatística (IBGE). Apresentado na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |codigo |Código referente a microrregião determinada pelo IBGE. Apresentado na tabela de layout do CAGED |int |- |PK | |descricao |Descrição referente a microrregião determinada pelo IBGE. Apresentando na tabela de layout do CAGED |varchar |200 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_microregiao.png }} ---- ^ dim_empregados ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente aos empregados. A base e limitada a 3600 empregados, e a unicidade é baseada na composição entre idade, sexo e escolaridade. Por motivo de privacidade o CAGED não divulga dados pessoais de empregados, por esse motivo os dados estão limitados. |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |idade |Valor referente a idade do empregado |int |- |PK | |cod_sexo |Código do sexo apresentado na Tabela de Layout do CAGED |int |- |Pk | |cod_grau_instrucao |Código da escolaridade apresentado na Tabela de Layout do CAGED |int |- |Pk | |sexo |Descrição do sexo, conforme apresentado na Tabela de Layout do CAGED |varchar |9 |Not null | |grau_instrucao |Descrição do grau de instrução, conforme apresentado na tabela de Layout do CAGED |varchar |23 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_empregados.png }} ---- ^ dim_raca_cor ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente a raça / cor dos empregados. Conforme apresentado no CAGED layout |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |cod_raca_cor |Código da raça/cor conforme apresentado na tabela layout do CAGED. |int |- |PK | |raca_cor |Descrição da raça/cor conforme apresentado na tabela layout do CAGED |varchar |9 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_raca_cor.png?270x272 }} ---- ^ dim_municipios ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referentes aos municípios. De acordo com apresentado na tabela de Layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |codigo |Código referente ao município. Apresentado na tabela de layout do CAGED |int |- |PK | |estado |Sigla do estado referente ao município. Apresentado na tabela de layout do CAGED |varchar |2 |Not null | |cidade |Nome do município Apresentado na tabela de layout do CAGED. |varchar |200 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_municipios.png }} ---- ^ dim_tipo_mov_desgregado ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os tipos de movimentação do desgregado. Apresentação na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |cod_tipo_mov_desgregado |Código do tipo de movimentação do desgregado. Apresentado na tabela de layout do CAGED |int |- |PK | |tipo_mov_desgregado |Descrição do tipo de movimentação do desgregado. Apresentado na tabela de layout do CAGED |varchar |45 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_mov_desgregado.png }} ---- ^ dim_tipo_defic ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os tipos de deficiência considerados pelo CAGED. Apresentado na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |cod_tipo_defic |Código referente ao tipo de deficiência. Apresentado na tabela de layout do CAGED |int |- |PK | |tipo_defic |Descrição do tipo de deficiência. Apresentado na tabela de layout do CAGED |varchar |20 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_tipo_defic.png?325x314 }} ---- ^ dim_tipo_estab ^^^^^ ^ Classificação | Dimensão ( X ) Fato ( ) |||| ^ Descrição |Armazena os dados referente ao tipo de estabelecimento. Apresentado na tabela de layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |cod_tipo_estab |Código do tipo de estabelecimento. Apresentando na tabela de Layout do CAGED |int |- |PK | |tipo_estab |Descrição do tipo de estabelecimento. Apresentado na tabela de layout do CAGED |varchar |11 |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_tipo_estab.png }} ---- ^ dim_tempo ^^^^^ ^Classificação |**Dimensão (X)** |||| ^Descrição |Armazena os dados referente ao tempo. Nesta tabela está concentrada os dados para analise temporal, a menor granularidade é dia e a maior é ano. |||| ^Nome ^Descrição ^Tipo de dado ^Tamanho ^Restrições de Domínio (PK, FK, Not Null, Check, Default, Identity) | |sk_tempo |Surrogate da tabela dim_tempo; |float8 |- |PK, Identity | |cod_dia |Chave primaria da tabela, formada a partir da concatenação do ano + mês + dia; |int |- |default | |data |Armazena o dia. Representa a menor granularidade dos dados da tabela dim tempo. Formato ISO 8601; |timestamp without time zone |- |default | |cod_semana |Código referente a quantidade de semanas compreendidas em um ano. Todo ano tem 53 semanas; |bigin |- |default | |nome_dia_semana |Descrição em formato referente ao nome do dia da semana. Não é utilizado o sufixo "-feira" na descrição; |varchar |7 |default | |cod_mes |Código numeral referente a ordem em que os meses são dispostos ao longo do ano; |bigint |- |default | |nome_mes |Descrição em formato referente ao nome do mês; |varchar |9 |default | |cod_mes_ano |Código referente ao mês e ano. Resultado da concatenação de mês + ano. Formato MM-AAAA; |varchar |7 |default | |nome_mes_ano |Descrição em formato de texto referente ao nome do mês e ano; |varchar |14 |default | |cod_trimestre |Código numeral referente a ordem em que os trimestres estão dispostos ao longo do ano; |bigint |- |default | |nome_trimestre |Descrição em formato de texto referente ao nome do trimestre. Não possui números; |varchar |18 |default | |cod_trimestre_ano |Código referente ao trimestre do ano. Resultado da concatenação entre cod_trimestre e ano. Formato TT-AAAA; |varchar |7 |default | |nome_trimestre_ano |Descrição em formato de texto a representação do cod_trimestre_ano; |varchar |23 |default | |cod_semestre |Código numeral referente a ordem em que os semestres estão dispostos ao longo do ano; |bigint |- |default | |nome_semestre |Descrição em formato de texto referente ao nome do semestres. não possui números; |varchar |17 |default | |cod_semestre_ano |Código referente ao semestre do ano.Resultado da concentração entre cod_semestre e ano. Formato SS-AAAA; |varchar |7 |default | |ano |Representa o ano em formato numeral; |bigint |- |default | |tipo_dia |Representa em formato de texto se o dia é útil o fim de semana. |varchar |13 |default | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.dim_tempo.png }} ---- ==== ==== ^ ft_emprego ^^^^^ ^ Classificação | Dimensão ( ) Fato ( X ) |||| ^ Descrição |Armazena os dados referentes a cada eventualidade emprego. De acordo com apresentado na tabela de Layout do CAGED |||| ^ Nome ^ Descrição ^ Tipo de dado ^ Tamanho ^ Restrições de Domínio | |admitidos_desligados |codigo referente às admissões ou desligamentos. 1 para admissão e 2 para desligamento |int |- |PK | |competencia_declarada |Código do ano concatenado ao mês do registrado. |varchar |2 |Not null | |municipio |Nome do município Apresentado na tabela de layout do CAGED. |varchar |200 |Not null | |ano_declarado |Ano registrado |int |- |Not null | |cbo_2002 |Codigo referente à CBO de 2002 |int |- |Not null | |cnae_10_classe |Código da classe do CNAE 1.0 |int |- |Not null | |cnae_20_classe |Código da classe do CNAE 2.0 |int |- |Not null | |cnae_20_subclas |Código da sub-classe do CNAE 2.0 |int |- |Not null | |faixa_empr_inicio_jan |Tamanho do estabelecimento em janeiro do ano de referência |int |- |Not null | |grau_instrucao |Grau de instrução ou escolaridade |int |- |Not null | |qtd_hora_contrat |Quantidade de horas contratuais por semana |int |- |Not null | |ibge_subsetor |Subsetor Econômico segundo IBGE |int |- |Not null | |idade |Idade do trabalhador (quando acumulada representa a soma das idades) |int |- |Not null | |ind_aprendiz |Indicador de movimentação referente a contrato de aprendizagem |int |- |Not null | |ind_portador_defic |Indicador se o empregado/servidor de portador de deficiência habilitado ou beneficiário reabilitado |int |- |Not null | |raca_cor |Raça e Cor do Trabalhador |int |- |Not null | |salario_mensal |Salário mensal em moeda corrente |numeric |(10,2) |Not null | |saldo_mov |Saldo de movimentação (1 para admissão e -1 para desligamento) |int |- |Not null | |sexo |Sexo |int |- |Not null | |tempo_emprego |Tempo de emprego do trabalhador (quando acumulada representa a soma dos meses) |numeric |(5,1) |Not null | |tipo_estab |Tipo de estabelecimento |int |- |Not null | |tipo_defic |Tipo de deficiência/Beneficiário habilitado |int |- |Not null | |tipo_mov_desgregado |Tipo de movimento |int |- |Not null | |uf |Município de localização do estabelecimento |int |- |Not null | |mesorregiao |Messoregião |int |- |Not null | |microrregiao |Microrregião |int |- |Not null | {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:dm_emprego.ft_emprego.png }} ---- ==== Arquitetura atual do Projeto ==== {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:investrondonia_-_topologia_wiki.png?800x600 }} ---- ==== Construção dos Dashboards ==== {{ :start:projetos:projetos_dev:sedi_data_mart_emprego:investrondonia_-_powerbi_wiki.png?800x601 }} Dashboards publicados [[https://app.powerbi.com/view?r=eyJrIjoiYjAzMDJhYzgtZTc5Mi00YzJmLWE2MmEtZTI5OGVkNjAwODI2IiwidCI6ImNiOWQxNTYxLTM1N2UtNGE1Zi1hZjgxLThlN2JmNjVlZGI1YiJ9|DataMartEmprego]] ---- ==== Construir o metadado ==== ==== Elaborar Dicionário de Dados ==== ==== Script de criação das tabelas do Data Mart ==== CREATE TABLE dm_emprego.dim_cbo_2002_ocupacao ( codigo int8 NULL, descricao VARCHAR(200) NULL ); CREATE TABLE dm_emprego.dim_cbo_94_ocupacao ( codigo int8 NULL, descricao VARCHAR(200) NULL ); CREATE TABLE dm_emprego.dim_classe_10 ( descricao VARCHAR(200) NULL, codigo VARCHAR(15) NULL ); CREATE TABLE dm_emprego.dim_cnae_20_subclas ( descricao VARCHAR(200) NULL, codigo VARCHAR(15) NULL ); CREATE TABLE dm_emprego.dim_cnae_2_classe ( codigo VARCHAR(15) NULL, descricao VARCHAR(200) NULL ); CREATE TABLE dm_emprego.dim_empregados ( cod_sexo int8 NULL, cod_ano int8 NULL, sexo VARCHAR(9) NULL, cod_grau_instrucao int8 NULL, grau_instrucao VARCHAR(23) NULL ); CREATE TABLE dm_emprego.dim_ibge_subsetor ( categorias VARCHAR(67) NULL, valor_na_fonte int4 NULL ); CREATE TABLE dm_emprego.dim_mesorregiao ( codigo int8 NULL, descricao VARCHAR(200) NULL ); CREATE TABLE dm_emprego.dim_microrregiao ( codigo int8 NULL, descricao VARCHAR(200) NULL ); CREATE TABLE dm_emprego.dim_municipios ( codigo int8 NULL, estado VARCHAR(2) NULL, cidade VARCHAR(200) NULL ); CREATE TABLE dm_emprego.dim_raca_cor ( cod_raca_cor int8 NULL, raca_cor VARCHAR(9) NULL ); CREATE TABLE dm_emprego.dim_tipo_defic ( cod_tipo_defic int8 NULL, tipo_defic VARCHAR(20) NULL ); CREATE TABLE dm_emprego.dim_tipo_estab ( cod_tipo_estab int8 NULL, tipo_estab VARCHAR(11) NULL ); CREATE TABLE dm_emprego.dim_tipo_mov_desgregado ( cod_tipo_mov_desgregado int8 NULL, tipo_mov_desgregado VARCHAR(46) NULL ); CREATE OR REPLACE FUNCTION f_concat_sinonimos() RETURNS setof cbo_ocupacao_concat AS $$ DECLARE cont INT := 8388;--(select count(*) from st1.cbo_sinonimos); i INT := 1; sinonimos VARCHAR := (SELECT t.titulo_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = 1); cod_ocup INT := 0; cod_sino INT := 0; BEGIN while (i <= cont) loop cod_ocup := (SELECT t.cod_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i ); cod_sino := (SELECT t.cod_sinonimo FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i); IF (cod_ocup = cod_sino) THEN IF((SELECT t.cod_sinonimo FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i-1) IS NULL )THEN sinonimos := (SELECT t.titulo_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i); END IF; IF ((SELECT t.cod_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i ) <> (SELECT t.cod_sinonimo FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i-1)) THEN INSERT INTO st1.cbo_ocupacao_concat (cod_ocupacao, titulo_ocupacao) VALUES ((SELECT t.cod_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i-1 ), sinonimos); sinonimos := (SELECT t.titulo_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i); END IF;-- fim do 1° IF sinonimos := concat(sinonimos, ' | ' , (SELECT t.titulo_sinimo FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i )); ELSE IF( ((SELECT t.cod_sinonimo FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i-1) = (SELECT t.cod_sinonimo FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i-1)) AND (SELECT t.cod_sinonimo FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i) IS NULL ) THEN INSERT INTO st1.cbo_ocupacao_concat (cod_ocupacao, titulo_ocupacao) VALUES ((SELECT t.cod_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i-1 ), sinonimos); END IF; INSERT INTO st1.cbo_ocupacao_concat (cod_ocupacao, titulo_ocupacao) VALUES ((SELECT t.cod_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i ), (SELECT t.titulo_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = i )); END IF; IF ((SELECT t.cod_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = 8388 ) = 992225) THEN INSERT INTO st1.cbo_ocupacao_concat (cod_ocupacao, titulo_ocupacao) VALUES ((SELECT t.cod_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = 8388 ), (SELECT t.titulo_ocupacao FROM st1.cbo_ocupac_c_sino t WHERE t.sk_ocup_sinon = 8388 )); END IF; i := i + 1; END loop; END; $$ LANGUAGE plpgsql; DELETE FROM st1.cbo_ocupacao_concat; SELECT f_concat_sinonimos(); ===== Integrantes do projeto ===== * [[:start:desenvolvimento:biografia:pessoal:abdenildo_deividy_sobreira_dos_santos|ABDENILDO DEIVIDY SOBREIRA DOS SANTOS]] * [[:start:desenvolvimento:biografia:pessoal:adriano_sol_sol|ADRIANO SOL SOL]] * [[:start:desenvolvimento:biografia:pessoal:hudson_fernando_mendes_de_franca|HUDSON FERNANDO MENDES DE FRANÇA]] * [[:start:desenvolvimento:biografia:pessoal:rodrigo_arnaldo_kreuzberg|RODRIGO ARNALDO KREUZBERG]] \\