Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Perfil do cliente

Caros, bom dia.

Vejam por gentileza, se podem me ajudar.

Ao fazer uma condicional para definir o perfil (p,m,g,gg) de um cliente não estou chegando ao resultado esperado. Para fazer esse "if" tenho algumas condicionais, como volume dos últimos 3 meses, a segmentação do cliente e Uf. Ps.:Estou fazendo na dimensão pois no futuro vou precisar filtrar.

Bem, como pode ser visto na imagem abaixo, ao filtrar um cliente com característica "cust_group={06}" ele entra no primeiro if e retorna resultado "P1"  sendo que o correto seria retornar o resultado do segundo if "P".

06.PNG

Abaixo segue meu código,

=Aggr(


if(

    sum({<VTYPE={010}, cust_group={'10'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)>-100 and

sum({<VTYPE={010}, cust_group={'10'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)<51, 'P1',

if(

    sum({<VTYPE={010}, cust_group={'06'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)>-100 and

sum({<VTYPE={010}, cust_group={'06'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)<1500, 'P',

))

    ,ship_to_descr )


Obrigado.


1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Você pode revisar sua lógica colocando essa cláusula fora do Set Analysis e dentro do if

Lembre que um Sum(<Set Analysis>Expressao) retorna um valor

View solution in original post

10 Replies
Anil_Babu_Samineni

Pode ser compartilhado o aplicativo de exemplo?

Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful
Anonymous
Not applicable
Author

Olá Anil,

Infelizmente o arquivo está com mais de 100mb além de ter mtas informações que não posso compartilhar. 

Anil_Babu_Samineni

Você pode colocar primeiro para o último e último primeiro e verificar?

Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful
Anonymous
Not applicable
Author

Desculpe Anil, não entendi ....

Anil_Babu_Samineni

Eu disse isso?

= Aggr (


if

    sum ({VTYPE = {010}, cust_group = {'06'} , MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) -100 and

sum ({VTYPE = {010}, cust_group = {'06'}, MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) 1500, 'P',


if

    sum ({VTYPE = {010}, cust_group = {'10'}, MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) -100 and

sum ({VTYPE = {010}, cust_group = {'10'}, MKS_REGION_Descr = {'Minas Gerais'}}, month = {$ (VLastMonth), $ (VSecondtoLastMonth), $ (VActualMonth) 51, 'P1',

))

    , ship_to_descr)


Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful
Clever_Anjos
Employee
Employee

Ele entra no 1o if porque a expressão abaixo retorna 0 que fica entre -100 e 51

sum({<VTYPE={010}, cust_group={'10'}, MKS_REGION_Descr={'Minas Gerais'}, month= {$(VLastMonth),$(VSecondtoLastMonth),$(VActualMonth)}>}_volume)

Anonymous
Not applicable
Author

Obrigado pela resposta Anil,

Resolveu em parte, pq os clientes que tem configuração cust_group = {'10'} ficaram como "P" sendo que deveriam ser "P1". Estranho né ?!

Anonymous
Not applicable
Author

Obrigado pela resposta Clever, pensei que ele avaliava se o cust group =06 e caso não fosse ele passava para o próximo if,

Existe alguma forma do if levar em consideração o cust_group ?

Clever_Anjos
Employee
Employee

Você pode revisar sua lógica colocando essa cláusula fora do Set Analysis e dentro do if

Lembre que um Sum(<Set Analysis>Expressao) retorna um valor