4 Replies Latest reply: Feb 14, 2011 8:46 AM by Cesar Accardi RSS

    Exemplo de Link table

      Olá pessoal,

      Segue um exemplo de Link Table.

      Espero que ajude a todos.

       


      Venda:
      Load
      AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
      //Ano,
      //Mês,
      //[Código Cliente],
      [Valor Venda]
      FROM LinkTable.xls (biff, embedded labels, table is [Venda$]);
      Orcamento:
      Load
      AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
      //Ano,
      //Mês,
      //[Código Cliente],
      [Valor Orcamento]
      FROM LinkTable.xls (biff, embedded labels, table is [Orcamento$]);
      Cliente:
      Load
      [Código Cliente],
      [Nome Cliente]
      FROM LinkTable.xls (biff, embedded labels, table is [Cliente$]);

      //====================================================
      // LINK TABLE
      //====================================================
      LinkTable:
      Load DISTINCT
      AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
      Ano,
      Mês,
      [Código Cliente]
      FROM LinkTable.xls (biff, embedded labels, table is [Venda$]);
      LinkTable:
      Load DISTINCT
      AutoNumber(Ano & '|' & Mês & '|' & [Código Cliente]) as Chave,
      Ano,
      Mês,
      [Código Cliente]
      FROM LinkTable.xls (biff, embedded labels, table is [Orcamento$]);


        • Exemplo de Link table

          Ola Fernando

          Isso me ajudou agora em algumas resoluções que eu estava precisando.

           

          Abraços

          Igor

          • Exemplo de Link table
            Cesar Accardi

            Tonial,

            Eu estava analisando seu exemplo e me surgiu uma dúvida, percebi que nas suas chaves quando você concatena os campos você coloca um caracter entre eles '|' ou ')'. Eu costumo fazer isso também porque imagino que possa haver o seguinte problema:

            Campo1Campo2Campo1 & Campo2
            Linha 1100220100220
            Linha 2100220100220


             

            Duas linhas com valores diferentes para os campos, porém o resultado da chave fica com o mesmo valor e é interpretado da mesma forma. Apesar disso, nunca testei se de fato o QlikView interpreta a concatenação da mesma forma. Você sabe me dizer se é realmente necessário colocar os separadores?

            Abraços

              • Exemplo de Link table

                Olá Cesar,

                Sua colocação esta perfeita e realmente é necessário colocar o separador pelo motivo exposto por você. O separador ')' foi por engano, sempre utilizo o pipe '|'.

                Você pode fazer o seguinte teste.

                Com base nos dados que você colocou utilizar a função AutoNumberHash128, você verá que ao suprirmos o separador, o resultado para a concatenação dos dois campos será a mesma e ao colocarmos o separador o resultado será diferente.

                Segue exemplo.

                 


                TESTE:
                LOAD
                *,
                Campo1&Campo2 AS KEY1,
                AutoNumberHash128(Campo1&Campo2) AS KEY2,
                Campo1&'|'&Campo2 AS KEY3,
                AutoNumberHash128(Campo1&'|'&Campo2) AS KEY4
                INLINE [
                Campo1, Campo2
                1002, 20
                100, 220
                ];