5 Replies Latest reply: Jul 9, 2018 6:20 AM by Thiago Justen Teixeira RSS

    Ajuda

    Pedro Mendes

      Pessoal, estou praticamente uma semana mexendo no QlikView 12 e estou com uma dúvida muito besta porém não consegui achar. Vejam um trecho do script que estou escrevendo:

       

      ODBC CONNECT TO XXXXXXXXXX

      //-------- Start Multiple Select Statements ------

      LOAD CliCod as [Código do Cliente], CliFocal as [Categoria do Cliente], CliNas as [Data de Nascimento do Cliente], CliNom as [Nome do Cliente];

      SQL SELECT CliCod, CliFocal, CliNas, CliNom

      FROM sac.dbo.CLI001;


      LOAD ForCod as [Código do Fornecedor], ForFab as [Fábrica], ForNom as [Nome do Fornecedor];

      SQL SELECT ForCod, ForFab, ForNom

      FROM sac.dbo.FOR001;


      LOAD FabCod as [Código do Fornecedor], FamCod as [Código da Família], GruCod as [Código do Grupo], ProCod as [Código do Produto], ProDsc as Produto, ProFor,

      ProPesoLiq as [Peso Líquido], SubGruCod as [Código do Subgrupo];

      SQL SELECT FabCod, FamCod, GruCod, ProCod, ProDsc, ProFor, ProPesoLiq, SubGruCod

      FROM sac.dbo.PRODUTOS;

      LOAD VndNum, VndProCod as [Código do Produto], VndProDt as [Data de Venda], VndProEstUlForCod as [Código do Fornecedor], VndProGruCod as [Código do Grupo],

           VndProPreInf as Preço, VndProQtd as Quantidade, VndProComPer as [% de Comissão], Year(VndProDt) as Year, Month(VndProDt) as Month;

      SQL SELECT VndNum, VndProCod, VndProDt, VndProEstUlForCod, VndProGruCod,

          VndProPreInf, VndProQtd, VndProComPer

      FROM sac.dbo.VND002;


      Ou seja, peguei algumas tabelas de um banco de dados e renomeei para que se relacionassem. A minha dúvida é, como faço para criar critérios para que não venham tantos dados, ex: [Data de Venda] > 2010. Outra pergunta, como faço para que tenha um campo resultante de uma multiplicação de campos, ex: VndProPreInf*VndProQtd?

       

      Obrigado e desculpe pela amolação

        • Re: Ajuda
          Thiago Justen Teixeira

          Pedro,

           

          Veja se lhe é útil:

           

          Para data de venda maior que 2010, por exemplo:

          LOAD VndNum, VndProCod as [Código do Produto], VndProDt as [Data de Venda], VndProEstUlForCod as [Código do Fornecedor], VndProGruCod as [Código do Grupo],

               VndProPreInf as Preço, VndProQtd as Quantidade, VndProComPer as [% de Comissão], Year(VndProDt) as Year, Month(VndProDt) as Month;

          SQL SELECT VndNum, VndProCod, VndProDt, VndProEstUlForCod, VndProGruCod,

              VndProPreInf, VndProQtd, VndProComPer

          FROM sac.dbo.VND002 where num(VndProDt) >2010;


          Para realizar multiplicação dos campos desejados:

          LOAD VndNum, VndProCod as [Código do Produto], VndProDt as [Data de Venda], VndProEstUlForCod as [Código do Fornecedor], VndProGruCod as [Código do Grupo],

               VndProPreInf as Preço, VndProQtd as Quantidade, VndProComPer as [% de Comissão], Year(VndProDt) as Year, Month(VndProDt) as Month, Evaluate(VndProPreInf*VndProQtd) as [Multiplicação de Campos];

          SQL SELECT VndNum, VndProCod, VndProDt, VndProEstUlForCod, VndProGruCod,

              VndProPreInf, VndProQtd, VndProComPer

          FROM sac.dbo.VND002 where num(VndProDt) >2010;

           

          Abs e Sucesso!!

            • Re: Ajuda
              Pablo Labbe

              Duas correções:

               

              Na clausula Where o correto seria utilizar VndProDt >= '2010-01-01' ou talvez VndProDt >= '01/01/2010' de acordo com a formatação de data utilizada no banco de dados.


              Para multiplicar campos no LOAD não precisa usar a função evaluate. Simplesmente multiplique as colunas e atribua um nome a nova coluna usando a clausula AS.


                • Re: Ajuda
                  Thiago Justen Teixeira

                  Bem pontuado pablolabbe, besteira minha não ter lido que o campo VndProDt era campo data com dia, mês e ano e daí nesse caso a cláusula where deve ficar como você já escreveu. Quanto ao evaluate, sei que bastaria multiplicar as colunas, mas imaginei nesse caso (por não ter amostra de dados alguma) que talvez um dos campos pudesse vir formatado da base como string. Mas, de novo, sua correção também é pertinente.

              • Re: Ajuda
                Thiago Justen Teixeira

                Não esqueça de marcar a resposta como correta e assim fecharmos o tópico.

                 

                Na dúvida de como fazer isso veja o item 2.3 do Manual do usuário | Como criar e gerir minhas perguntas?

                • Re: Ajuda
                  Thiago Justen Teixeira

                  Não esqueça de marcar a resposta como correta e assim fecharmos o tópico.

                   

                  Na dúvida de como fazer isso veja o item 2.3 do Manual do usuário | Como criar e gerir minhas perguntas?