5 Replies Latest reply: Dec 29, 2014 7:16 AM by Marivan Ferraz RSS

    Relacionar colunas com nomes diferente

    Marivan Ferraz

      Bom dia pessoal
      Sou novo na ferramenta e tenho uma dúvida em  relação ao relacionamento das tabelas.
      Sei que o relacionamento no Qlikview é feito automático, basta igualar o nome das tabelas que tudo tende a funcionar direitinho.

      Estou buscando valores de uma lista no Sharepoint pelo Access por isso algumas colunas estão com esses " ` ".
      Vamos ao problema, tenho uma tabela chamada Protocolo que é responsável por armazenar ocorrências diversas que ocorrem na empresa. Nessa tabela tem diversos campos, mas os campos que eu preciso são : 
      ID, - id do Protocolo

      Titulo, -titulo do Protocolo

      Atribuido as Atribuída_a, -nome do usuário que foi atribuído o Protocolo

      `Criado por`as Criado_por, -nome do usuário que criou o Protocolo

      `Modificado por`as Modificado_por -nome do usuário que modificou o Protocolo.

       

      No Acess retorna os valores das colunas em texto, pois ele faz o relacionamento com a tabela UserInfo.

      Porém quando esses dados chegam no Qlikview eles vão como um número. Exemplo id_usuário.

      No SQL resolveria esse problema fácil utilizando essa Query:

       

      SQL SELECT P.ID,   

         P.`Título`, 

         P.Atribuido,

         P.`Criado por`as Criado_por,

         P.`Modificado por`as Modificado_por,

         P.Prazo,

          us.Nome 

      FROM PROTOCOLO  P

      JOIN UserInfo us

      on us.ID= P.Atribuido.

      ;

      Minha dúvida é:

      Como relacionar os campos Atribuido,Criado_por e Modificado_por com a tabela UserInfo?
      Eu só queria que mostrasse os nomes ao invés dos id's que estão sendo mostrados agora =/...
      Texto ta grande, mas eu tentei explicar o máximo possível para não gerar confusão  

        • Re: Relacionar colunas com nomes diferente
          Luciano Vasconcelos

          Se você quiser manter os nomes originais,  você duplica a coluna chave com um alias, mas eles só se relacionam se tiver o mesmo nome.

          Se você for ler do banco pode manter a sua query na extração, caso contrário você lê a tabela protocolo e depois lê a tabela UserInfo com inner join na primeira tabela chamando a coluna ID as Atribuido.

           

          Montando um esqueleto:

           

          Protocolo:

          LOAD

              Num,

              SQL;

          SQL SELECT

             ID, 

             `Título`,

             Atribuido,

             `Criado por`as Criado_por,

             `Modificado por`as Modificado_por,

             Prazo

          FROM tabela protocolo;

           

          Inner Join(Protocolo)

          LOAD

              ID     as Atribuido,

              Nome;

          SQL SELECT

             ID

          FROM tabela UserInfo ;

            • Re: Relacionar colunas com nomes diferente
              Marivan Ferraz

              Boa tarde Luciano,
              Fiz da forma que você indicou e funcionou para a coluna Atribuido, como eu faço agora para que todas as colunas que se relacionam com a coluna Nome da tabela UserInfo sejam preenchidas  com os seus respectivos Nomes e não com os ID?

               

               

               

              qlik2.PNG

                • Re: Relacionar colunas com nomes diferente
                  Luciano Vasconcelos

                  Não sei se entendi bem a sua pergunta, mas você teoricamente só têm que incluir na parte do inner join.

                  Se elas forem parte da chave de batimento precisam ter o mesmo nome.

                  Outro detalhe, isso funciona para o inner ou left join pq a tabela será uma só no qlikview.

                  Você não pode/deve ter tabelas na nuvem de dados do Qlikview que se liguem por mais de um campo.

                   

                  Inner Join(Protocolo)

                  LOAD

                      ID     as Atribuido,

                      Nome,

                  campo3, campo4

                  ;

                  SQL SELECT

                     ID,

                     Nome,

                  campo3, campo4

                  FROM tabela UserInfo ;

              • Re: Relacionar colunas com nomes diferente
                Alan Feliciano

                Olá Marivan,

                 

                Pelo que entendi, você quer atribuir o nome de usuário a cada coluna.

                Você pode (e deve) resolver isso no Qlikview.

                Neste caso você pode utilizar uma função chamada ApplyMap.

                 

                Você carregará a tabela de usuários, como uma tabela de mapeamento, desta forma:

                MapUsuario:
                Mapping
                LOAD id_usuario
                  ,usuario
                INLINE [
                    id_usuario, usuario
                    1, Aberlardo
                    2, Bernardo
                    3, Carlos
                    4, Daniel
                    5, Elias
                ];
                
                
                

                *** Usei dados inline para exemplo, você deve inserir seu SQL.

                 

                Depois disto você carrega seu dados de protocolo e aplica o mapeamento 'MapUsuario', desta forma:

                Protocolo:
                LOAD
                  id                                      as id_protocolo,
                  ApplyMap('MapUsuario', atribuido)       as atribuido,
                  ApplyMap('MapUsuario', criado_por)      as criado_por,
                  ApplyMap('MapUsuario', modificado_por)  as modificado_por
                INLINE [
                    id, atribuido, criado_por, modificado_por
                    1, 1, 2, 1
                    2, 2, 2, 2
                    3, 4, 1, 2
                    4, 3, 3, 2
                    5, 1, 1, 5
                    6, 3, 4, 5
                    7, 2, 1, 1
                    8, 2, 5, 5
                    9, 3, 3, 3
                    10, 1, 1, 3
                ];
                
                
                
                

                 

                 

                Ao ser carregado, as colunas ficarão com o nome dos usuário e seu modelo de dados ficará assim:

                 

                E na tela seus dados:

                 

                Estou enviando o QVW para você conferir estas informações no arquivo.