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