Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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!!
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?
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?
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.
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.