Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
pedro_mendes
Visitor

Ajuda

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

Tags (1)
5 Replies
thiago_justen
Valued Contributor III

Re: Ajuda

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!!

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
thiago_justen
Valued Contributor III

Re: Ajuda

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?

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
thiago_justen
Valued Contributor III

Re: Ajuda

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?

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
pablolabbe
Valued Contributor II

Re: Ajuda

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.


thiago_justen
Valued Contributor III

Re: Ajuda

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.

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago