Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Dúvida regra no scripit

Boa tarde pessoal,

Seguinte eu tenho uma tabela com os campos PRODUTO , CIDADE_LOJA , CIDADE_CLIENTE. Eu tenho uma regra onde eu precisava criar uma flag para calculo toda vez que tiver uma venda onde a CIDADE_CLIENTE seja diferente da CIDADE_LOJA, mas que exista essa CIDADE_CLIENTE em outras CIDADE_LOJA. ( ou seja quando uma loja faz uma venda em uma cidade de outra loja).

exemplo:

PRODUTO, CIDADE_LOJA, CIDADE_CLIENTE, FLAG_INVASAO

X , CURITIBA, CURITIBA,                 N

Y , FLORIANÓPOLIS, BLUMENAU,    N

Z,  FLORIANÓPOLIS, CURITIBA,        S

ideias?

Labels (1)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite Rodrigo.

Script:

Cidades_Com_Loja:

mapping LOAD * INLINE [

CIDADE_LOJA    ,INVASAO

CURITIBA       ,S

FLORIANÓPOLIS  ,S

];

Venda:

LOAD *,

     ApplyMap('Cidades_Com_Loja',if(CIDADE_LOJA <> CIDADE_CLIENTE,CIDADE_CLIENTE),'N')  as FLAG_INVASAO;

LOAD * INLINE [

PRODUTO, CIDADE_LOJA  , CIDADE_CLIENTE

X      , CURITIBA     , CURITIBA

Y      , FLORIANÓPOLIS, BLUMENAU

Z      , FLORIANÓPOLIS, CURITIBA

];

Resultado:

CIDADE_LOJA CIDADE_CLIENTE PRODUTO FLAG_INVASAO
FLORIANÓPOLISBLUMENAUYN
CURITIBACURITIBAXN
FLORIANÓPOLISCURITIBAZS
furtado@farolbi.com.br

View solution in original post

3 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Fala Rodrigo, tudo bem meu caro?

Use o Left Join com residente nessa tabela e o Exists.

Vou tentar fazer um exemplo para você.

Como prometido, segue exemplo, porém, a resposta do Alessandro é bem melhor.

Produtos:

LOAD * INLINE [

    PRODUTO, CIDADE_LOJA, CIDADE_CLIENTE

    X, CURITIBA, CURITIBA

    Y, FLORIANÓPOLIS, BLUMENAU

    Z, FLORIANÓPOLIS, CURITIBA

];

Left Join (Produtos)

LOAD *, If(CIDADE_LOJA<>CIDADE_CLIENTE and Exists(CIDADE_LOJA,CIDADE_CLIENTE) ,'S','N') as FLAG_INVASAO

Resident Produtos;

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite Rodrigo.

Script:

Cidades_Com_Loja:

mapping LOAD * INLINE [

CIDADE_LOJA    ,INVASAO

CURITIBA       ,S

FLORIANÓPOLIS  ,S

];

Venda:

LOAD *,

     ApplyMap('Cidades_Com_Loja',if(CIDADE_LOJA <> CIDADE_CLIENTE,CIDADE_CLIENTE),'N')  as FLAG_INVASAO;

LOAD * INLINE [

PRODUTO, CIDADE_LOJA  , CIDADE_CLIENTE

X      , CURITIBA     , CURITIBA

Y      , FLORIANÓPOLIS, BLUMENAU

Z      , FLORIANÓPOLIS, CURITIBA

];

Resultado:

CIDADE_LOJA CIDADE_CLIENTE PRODUTO FLAG_INVASAO
FLORIANÓPOLISBLUMENAUYN
CURITIBACURITIBAXN
FLORIANÓPOLISCURITIBAZS
furtado@farolbi.com.br
Anonymous
Not applicable
Author

Opa Aderlan, tudo beem sim!

Alessandro e Aderlan, obrigado pela ajuda!