Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content
Announcements
Yikes! We're aware of some unexpected text appearing at the top of each group and are looking into it.
cancel
Showing results for 
Search instead for 
Did you mean: 
ruzivao1980
Creator
Creator

Comparar 2 loads

Boa tarde amigos....

Tenho 2 loads, um do Faturamento, onde eu tenho os clientes que eu vendi, e outro load do meu cadastro de clientes, contendo todo o meu cadastro. No Load Faturamento eu não tenho todos os clientes que eu tenho no cadastro de clientes, então:

Como eu comparo os 2 loads, ex: quero saber quantos clientes não efetuaram compras ou quantos clientes eu tenho ativo que compraram, lembrando que no cadastro de lientes tem um campo ATIVO.

Obrigado a todos pela ajuda!

Labels (1)
5 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Na carga podes ler primeiro as notas e depois os clientes.

Em alguma linha do LOAD poderias colocar a linha

LOAD

    CliCod,

    if(Exists(CliCod)=,'Sim','Não')                       as Cliente_Tem_Nota,

    ...

Da uma olhada no help como funciona o Exists(). Ele retorna True se o conteúdo do campo ja foi lido antes. Assim você saberia se o cliente ja foi lido no LOAD das notas e portanto tem nota.

Depois, com

count( distinct  {<Cliente_Tem_Nota={'Não'}>} CliCod )

podes saber quantos não compraram.

furtado@farolbi.com.br
ruzivao1980
Creator
Creator
Author

Bom dia, obrigado pelo retorno, mas nao sei se entendeu....

Tenho a tabela... FATURAMENTO_ATUAL, te me traz o meu faturamento, e a tabela CADASTRO_CLIENTE, que me traz todo cadastro, não entendi como vou comparar com o exists o COD_CLIENTE que tem no CADASTRO_CLIENTE e não tem no FATURAMENTO_ATUAL.

Me desculpe, poderia me explicar melhor....

ruzivao1980
Creator
Creator
Author

Tentei fazer o que vc me falou... mas ele me traz... o mesmo resultado do distinct que eu tinha feito com a positivação....

LOAD

--------

LOAD

    COD_CADASTRO as COD_CLIENTE,

    if(Exists(COD_CADASTRO)='Sim','Não') as Cliente_Tem_Nota

    FROM

$(vPasta)CADASTRO_CLIENTE_ATUAL.qvd

(qvd);

------

cadastro.png

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Roosevelt,

Sim, entendi.

Se voce esta criando o campo COD_CLIENTE na nota então o seu exists()  deveria ser


exists(COD_CLIENTE,COD_CADASTRO)

o Exists() retorno se o conteúdo do campo já existe.Mas tem que ser o campo que esta sendo criado

Segue um modelo exemplo.

2018-11-03 12_43_16-QlikView x64 - [F__tmp_Exists.qvw_].png

Nota:

LOAD * INLINE [

Nota , Valor , Cliente

1001 , 100   , A

1002 , 120   , B

1003 , 130   , C

1004 , 140   , D

1005 , 150   , F

1006 , 160   , H

1007 , 170   , J

];


Cliente:

LOAD

   Cliente,

   Nome,

   if(Exists(Cliente),'Sim','Não')     as Cliente_Tem_Nota

INLINE [

Cliente , Nome

A       , AAAAAAAAAA

B       , BBBBBBBBBB

C       , CCCCCCCCCC

D       , DDDDDDDDDD

E       , EEEEEEEEEE

F       , FFFFFFFFFF

G       , GGGGGGGGGG

H       , HHHHHHHHHH

I       , IIIIIIIIII

J       , JJJJJJJJJJ

];

furtado@farolbi.com.br
felipe_dutra
Partner - Creator
Partner - Creator

Boa noite, Roosevelt!

A solução apresentada pelo Alessandro atenderá sua necessidade, mas lembre de manter a leitura da tabela de faturamento antes da leitura da tabela de usuários.

Eu, particularmente, evito manter essas dependências no script, pois durante o desenvolvimento é comum alterar a posição das abas/seções, então busco, sempre que possível, usar mapeamento, e me preocupo apenas em manter a aba de mapeamentos antes das demais abas.

Para aplicar ao seu caso, basta criar um mapeamento do campo com o código do cliente proveniente da tabela de faturamento e depois aplicar o mapeamento durante a leitura da tabela de clientes.

Ficaria algo assim:

MapClienteFaturamento:

Mapping

Load Distinct

COD_CLIENTE,

'Sim' as Retorno

FROM

$(vPasta)FATURAMENTO_ATUAL.qvd

(qvd);

CADASTRO_CLIENTE_ATUAL:

LOAD *

    COD_CADASTRO as COD_CLIENTE,

    ApplyMap('MapClienteFaturamento', COD_CADASTRO,'Não') AS Cliente_Tem_Nota

    FROM

$(vPasta)CADASTRO_CLIENTE_ATUAL.qvd

(qvd);

Abs,

Felipe