6 Replies Latest reply: Nov 22, 2017 3:27 AM by Thiago das Chagas cunha RSS

    Modelagem do LinkTable

    Silvio Lima

      Possuo os Campos NR_PROCESSO e NR_GUIA, em 3 tabelas distintas, preciso criar um LinkTable para eles e também para os campos data que o painel possui, porém ao criar o linktable como foi sugerido por aqui e retirar estes campos-chave nas tabelas de origem acabo perdendo a modelagem dos dados. Eu preciso fazer a modelagem dimensional para este painel mas não estou conseguindo. QVW em anexo.

        • Re: Modelagem do LinkTable
          Thiago das Chagas cunha

          Vamos la

           

          Sim Esta correto voce tirar das tabelas originais, porem o que tu vai fazer e :

           

          1 - Criar uma chave composta com os campos que sao comum e devems er relacionados por exemplo:

           

           

          NR_PROCESSO  & '|'  NR_GUIA as %KeyProcessoGuia ou %KeyLinktable,

          NR_PROCESSO  ,

          NR_GUIA

          Campo_de_Data as Data


          Em todos as tabelas depois tu vai fazer isso :



          Linktable:

          NoConcatenate

          Load

          %KeyProcessoGuia ou %KeyLinktable,

          NR_PROCESSO  ,

          NR_GUIA

          Data

          From Table_A


          drop  Fields  NR_PROCESSO  , NR_GUIA, Data From Tabela_A


          Voce faz isso em todas as tabela e fica tudo na Linktable.



          Porque :

          A Link table fica todas todos os relacionamentos, tanto de dimensao , quanto para as fatos, ele tem que achar as informacoes dentro da tabela fato porque o relacionamento do Processo + Guia vai gerar uma chave Unica na tabela, nao precisando manter no Tabela de origem.


          Se voce manter, tera uma Chave Syntetica gigante.



            • Re: Modelagem do LinkTable
              Silvio Lima

              srchagas

              Então não devo realmente apagar os campos nas tabelas originais como havia entendido e sim criar  primeiro uma chave composta nestas tabelas como:

              NR_PROCESSO & '|'  NR_GUIA as %KeyProcessoGuia ou %KeyLinktable,

              NR_PROCESSO ,

              NR_GUIA

              Campo_de_Data as Data

               

              Posteriormente referencio estes campos na linktable, correto?

               

              A dúvida que ficou agora foi quanto ao uso do concatanete, pode acontecer que numa destas 3 tabelas exista o mesmo NR_PROCESSO, porque que eu usaria NoConcatanete ao invés de Concatanete?

               

              A outra dúvida mais primária seria ao referenciar a tabela na linktable existe diferença entre usar

              Resident Tabela_A

              ou

              FROM

              [D:\Qlikview\Gestão Judicial\Homologação\Extração\tabelas\TBE_OG.qvd]

              (qvd);

                • Re: Modelagem do LinkTable
                  Silvio Lima

                  srchagas

                  Acredito que a solução que você deu seria a mais viável, porém não estou conseguindo implementar pois na tabela boletos por exemplo existem 3 Campos data, e não posso uni-los em um única chave por nele existir DT_VENCIMENTO, onde utilizo uma flag para datas futiras que exibe os boletos a vencer.

                  Para boletos o script ficou da seguinte forma:

                    NR_GUIA as %ID_LINK,

                       date( DT_PROCESSAMENTO) & '|' & Date( DT_PAGAMENTO) & '|' & Date( DT_VENCIMENTO) AS %TIPO_DATA,

                    • Re: Modelagem do LinkTable
                      Thiago das Chagas cunha

                      Opa

                       

                      entao so na primeira tabela do NoConcatenate , nas seguinte tu via usar concatenate para a Link table

                       

                      Entao as tabela B e C vao concatenar os mesmo campos na Link e serao removido das origens.

                       

                      algo assim:

                       

                       

                      NoConcatenate:

                      Linktable:

                      %KeyProcessoGuia ou %KeyLinktable,

                      NR_PROCESSO ,

                      NR_GUIA

                      Data

                      resident Tabela_A


                      drop Fields

                      NR_PROCESSO ,

                      NR_GUIA,

                      Data

                      FRom Tabela_A


                      Concatenate(Linktable)

                      %KeyProcessoGuia ou %KeyLinktable,

                      NR_PROCESSO ,

                      NR_GUIA

                      Data

                      resident Tabela_B


                      drop Fields

                      NR_PROCESSO ,

                      NR_GUIA,

                      Data

                      From Tabela_B



                      ----------------------------------------------------------


                      Com relacao ao campo de Data, se ele precisa relacionar na Link e sempre mostrar, usar assim :


                      Alt(DT_PROCESSAMENTO,DT_PAGAMENTO,DT_VENCIMENTO) as %Tipo_DATA


                      Alt : verifica se o campo esta vazio e completa com proximo, como se fosse um "Case"


                      assim voce sempre tera a data possivel


                      ai tu ve a melhor ordem pra ti, poorque usei como exemplo, mas voce tem certeza que tem sempre data de Processamento, mas nao nem sempre tem de vencimento e precisa ser prioritario poderia ser assim tb


                      Alt(DT_PAGAMENTO,DT_VENCIMENTO, DT_PROCESSAMENTO) as %Tipo_DATA


                      Da Menor possibilidade de existir para a maior


                        • Re: Modelagem do LinkTable
                          Silvio Lima

                          Olá srchagas

                          Consegui implementar a Linktable da forma que você sugeriu, por análise das tabelas eu havia deduzido que esta seria a melhor modelagem de dados para este painel, no entanto os valores continuam incorretos. Eu já testei diversas formas, porém minha experiência com o Qlik ainda é pequena.

                           

                          Um exemplo seria para o dia 30/03/2017, boletos em aberto deveria exibir 46, e 35 Ordens Canceladas. Outra inconsistência é na tabela da aba Ordens Executadas, a coluna Tipo Alvará não mostra Alvará Eletrônico algum, enquanto a base está cheia deles.

                           

                          Tem como você analisar o QVW desta resposta e me dar mais uma força nesta modelagem?

                          Desde já agradeço.

                            • Re: Modelagem do LinkTable
                              Thiago das Chagas cunha

                              Cara eu  cheguei em 265 tirando as guias zeradas...tu fez a chave somente com Processo...nao seria melhor processo e guia? o codigo da guia nao se repete para processo diferente? pr se tiver vai dduplicar...triplicar a ingormacao...nao consegue fazer com processo e guia ??

                               

                              =count(  DISTINCT {< NR_GUIA = {">0"}  >}  NR_GUIA)

                               

                              alem do mais essa base ta estranha o que eu entendo de  processo e que geralmente ele tem o ano no comeco, logo achei dados de 2014...2015  com essa data, isso ta certo?

                              Pode ser o campo data ai tu usou nao ta legal....segue o exemplo