9 Replies Latest reply: Jul 25, 2012 12:57 PM by Juliana Holstein RSS

    Unir duas tabelas com valores distintos

      Pessoal, boa tarde!
      Estou com uma dúvida e creio que seja simples de resolver, porém já tentei diversas coisinhas e não funciona.
      Se puderem me ajudar agradeço..

       

      Tenho duas tabelas ( estou fazendo 2 loads)

       

      SETOR:
      NoConcatenate
      LOAD DISTINCT CD_SETOR AS TESTE_SETOR_COD_SETOR, cd_setor as chave
      FROM C:\Qlikview\Producao\QVD\SETOR.qvd (qvd)
      WHERE ID_ATIVO = 'S';

       

      SETOR_1:
      NOCONCATENATE
      LOAD DISTINCT COD_SETOR AS TESTE_SETOR_COD_SETOR_1
      FROM C:\Qlikview\Producao\QVD\ABSENTEISMO.qvd (qvd);

       

      Quero então criar uma tabela unica, com os setores do primeiro LOAD (SETOR)  que não são encontrados no segundo load (SETOR_1).

       

      Como posso fazer isso? Os valores que são identicos nas duas tabelas, quero desconsiderar..

       

      Desde já agradeço a ajuda,

      Abs,

      Juliana.

       

       

        • Re: Unir duas tabelas com valores distintos

          Ja tentou usar o

          Concatenate

           

           

          Ficaria assim

           

           

          SETOR:
          NoConcatenate
          LOAD DISTINCT CD_SETOR AS TESTE_SETOR_COD_SETOR, cd_setor as chave
          FROM C:\Qlikview\Producao\QVD\SETOR.qvd (qvd)
          WHERE ID_ATIVO = 'S';

           

          Concatenate

           

          SETOR_1:
          NOCONCATENATE
          LOAD DISTINCT COD_SETOR AS TESTE_SETOR_COD_SETOR_1
          FROM C:\Qlikview\Producao\QVD\ABSENTEISMO.qvd (qvd);

            • Re: Unir duas tabelas com valores distintos

              Olá Lshimada,

              Então, mas com o CONCATENATE entre as duas não funciona. Pois ele une as tabelas.
              Eu quero gerar uma terceira tabela, somente com os setores que existem na tabela SETOR e que não existem na tabela SETOR_1.

               

               

               

              Alguma dica?


              Desde já agradeço.

              Ju

                • Re: Unir duas tabelas com valores distintos

                  Comando LEFT será que nao da certo?

                   

                  O LEFT ele irá criar uma tabela com os dados da primeira tabela, caso nao de certo tente colocar o KEEP depois do LEFT

                   

                  SETOR:
                  NoConcatenate
                  LOAD DISTINCT CD_SETOR AS TESTE_SETOR_COD_SETOR, cd_setor as chave
                  FROM C:\Qlikview\Producao\QVD\SETOR.qvd (qvd)
                  WHERE ID_ATIVO = 'S';

                   

                  LEFT

                   

                  SETOR_1:
                  NOCONCATENATE
                  LOAD DISTINCT COD_SETOR AS TESTE_SETOR_COD_SETOR_1
                  FROM C:\Qlikview\Producao\QVD\ABSENTEISMO.qvd (qvd);

              • Re: Unir duas tabelas com valores distintos
                rodrigo silvestre

                Olá Juliana,

                de uma olhada na função exists() ... você pode usar ela no where e fazer o que precisa

                  • Re: Unir duas tabelas com valores distintos

                    Olá Rodrigo,
                    Então eu tentei utilizar já a função exists, porém me dá erro, dizendo que não encontra o campo TESTE_SETOR_COD_SETOR, quando vai criar a terceira tabela "SETOR_OK".

                    Veja como fiz abaixo:

                     

                    TESTE_SETOR:
                    LOAD DISTINCT CD_SETOR AS TESTE_SETOR_COD_SETOR
                    FROM C:\Qlikview\Producao\QVD\SETOR.qvd (qvd)
                    WHERE ID_ATIVO = 'S';

                     

                    TESTE_SETOR_1:
                    LOAD DISTINCT COD_SETOR AS TESTE_SETOR_COD_SETOR_1
                    FROM C:\Qlikview\Producao\QVD\ABSENTEISMO.qvd (qvd);

                     

                    SETOR_OK:
                    NoConcatenate
                    LOAD TESTE_SETOR_COD_SETOR
                    RESIDENT TESTE_SETOR;

                     

                    CONCATENATE

                     

                    LOAD TESTE_SETOR_COD_SETOR_1
                    RESIDENT SETOR_1
                    WHERE NOT EXISTS(TESTE_SETOR_COD_SETOR, TESTE_SETOR_COD_SETOR_1);

                     

                    Desde já te agradeço,

                    Abs,

                    Juliana.

                    • Re: Unir duas tabelas com valores distintos

                      Olá Rodrigo, boa tarde!

                      Outra forma que tentei utilizar o exists foi desta maneira:

                       

                      TESTE_SETOR:
                      LOAD DISTINCT COD_SETOR  as CD_SETOR
                      FROM C:\Qlikview\Producao\QVD\ABSENTEISMO.qvd (qvd);

                      LOAD DISTINCT CD_SETOR
                      FROM C:\Qlikview\Producao\QVD\SETOR.qvd (qvd)
                      WHERE ID_ATIVO = 'S' and
                      NOT EXISTS(COD_SETOR, CD_SETOR);

                       

                      Porém mesmo assim não funcionou, ele trouxe todos os setores do meu primeiro load.
                      E eu gostaria de saber somente os setores que tenho no meu segundo load, que não tenho no primeiro load

                       

                       


                      Desde já te agradeço,

                      Ju

                        • Re: Unir duas tabelas com valores distintos

                          Meninos, boa tarde!
                          Agradeço a dica de todos.

                          Consegui resolver a questão:

                           

                          Utilizei o seguinte código:

                           

                          TESTE_SETOR:

                          LOAD DISTINCT COD_SETOR  as CD_SETOR_EXCLUDE

                          FROM C:\Qlikview\Producao\QVD\ABSENTEISMO.qvd (qvd)

                          ;

                          LOAD DISTINCT CD_SETOR

                          FROM C:\Qlikview\Producao\QVD\SETOR.qvd (qvd)

                          WHERE ID_ATIVO = 'S' and

                          NOT EXISTS(CD_SETOR_EXCLUDE, CD_SETOR);

                           

                           

                          Obrigada a todos.
                          Ju

                      • Re: Unir duas tabelas com valores distintos

                        Olá Juliana,

                         

                        Pelo que entendi você poderia usar um left join, mas o que percebi no seu codigo é o nome da tabela TESTE_SETOR_1 e no load você colocou apenas SETOR_1. tente com o load abaixo:

                         

                         

                        TESTE_SETOR:

                        LOAD DISTINCT CD_SETOR AS TESTE_SETOR_COD_SETOR

                        FROM C:\Qlikview\Producao\QVD\SETOR.qvd (qvd)

                        WHERE ID_ATIVO = 'S';

                         

                        TESTE_SETOR_1:

                        LOAD DISTINCT COD_SETOR AS TESTE_SETOR_COD_SETOR_1

                        FROM C:\Qlikview\Producao\QVD\ABSENTEISMO.qvd (qvd);

                         

                        SETOR_OK:

                        NoConcatenate

                        LOAD TESTE_SETOR_COD_SETOR

                        RESIDENT TESTE_SETOR;

                         

                        CONCATENATE

                         

                        LOAD TESTE_SETOR_COD_SETOR_1

                        RESIDENT TESTE_SETOR_1

                        WHERE NOT EXISTS(TESTE_SETOR_COD_SETOR_1, TESTE_SETOR_COD_SETOR);

                         

                         

                        att,

                         

                        Marco Oliveira

                          • Re: Unir duas tabelas com valores distintos

                            Olá Marco,
                            Então o nome da tabela errado eu percebi logo depois que postei, foi uma dedada mesmo..
                            Utilizando o código que você me mandou, apresenta o erro que envio em anexo..

                             

                            Na verdade eu queria o seguinte:

                             

                            Tenho a tabela TESTE_SETOR com 44 registros,

                            A tabela TESTE_SETOR_1 com 35 registros,

                            Na tabela SETOR_OK, deveria ficar somente com 9 registros. Que são os que tem na tabela TESTE_SETOR

                            e não estão na TESTE_SETOR_1.

                             

                            Desde já agradeço,
                            Juliana.