Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde amigos, alguém poderia me dizer uma forma de criar um campo no script que siga o mesmo intuito dessa expressão
=aggr(
if(Sum({<Data={">=$(=Date(Today()-150)) <= $(=Today())"}>} TotalLiquido) = '0','5M',
if(Sum({<Data={">=$(=Date(Today()-120)) <= $(=Today())"}>} TotalLiquido) = '0','4M',
if(Sum({<Data={">=$(=Date(Today()-90)) <= $(=Today())"}>} TotalLiquido) = '0','3M',
if(Sum({<Data={">=$(=Date(Today()-60)) <= $(=Today())"}>} TotalLiquido) = '0','2M',
if(Sum({<Data={">=$(=Date(Today()-30)) <= $(=Today())"}>} TotalLiquido) = '0','1M'))))),[Grupo-Cliente])
Seria uma curva de inatividade, se alguém souber uma forma de criar algo nesse sentido dentro do script eu agradeço.
Opa, é possível sim. Você terá que fazer algumas substituições de função, pois AGGR e Set Analysis não funcionam no script.
No lugar do AGGR, você terá que usar o recurso de GROUP BY da tabela
No lugar do Set Analysis, você terá que usar IF
Basicamente você precisa ter uma tabela, no seu modelo, que possua as três colunas utilizadas no cálculo: Data, TotalLiquido e Grupo-Cliente
Primeiro passo é fazer um Somatório da coluna TotalLiquido por Grupo-Cliente, por exemplo:
[TabelaAgrupada]:
LOAD
Data,
Grupo-Cliente,
SUM( TotalLiquido) as TotalLiquido
RESIDENT Tabela
GROUP BY Data, Grupo-Cliente;
Depois, em outro passo de RESIDENT, faça o IF que precisa:
LOAD
Data,
Grupo-Cliente,
TotalLiquido,
if( Data >= Date(Today()-150)) and Data <= Today() and TotalLiquido = 0, '5M',
if( Data >= Date(Today()-120)) and Data <= Today() and TotalLiquido = 0, '4M',
if( Data >= Date(Today()-90)) and Data <= Today() and TotalLiquido = 0, '3M',
if( Data >= Date(Today()-60)) and Data <= Today() and TotalLiquido = 0, '2M',
if( Data >= Date(Today()-30)) and Data <= Today() and TotalLiquido = 0, '1M'
))))) as [NovoCampo]
RESIDENT TabelaAgrupada;
DROP TABLE TableAgrupada;
Opa, é possível sim. Você terá que fazer algumas substituições de função, pois AGGR e Set Analysis não funcionam no script.
No lugar do AGGR, você terá que usar o recurso de GROUP BY da tabela
No lugar do Set Analysis, você terá que usar IF
Basicamente você precisa ter uma tabela, no seu modelo, que possua as três colunas utilizadas no cálculo: Data, TotalLiquido e Grupo-Cliente
Primeiro passo é fazer um Somatório da coluna TotalLiquido por Grupo-Cliente, por exemplo:
[TabelaAgrupada]:
LOAD
Data,
Grupo-Cliente,
SUM( TotalLiquido) as TotalLiquido
RESIDENT Tabela
GROUP BY Data, Grupo-Cliente;
Depois, em outro passo de RESIDENT, faça o IF que precisa:
LOAD
Data,
Grupo-Cliente,
TotalLiquido,
if( Data >= Date(Today()-150)) and Data <= Today() and TotalLiquido = 0, '5M',
if( Data >= Date(Today()-120)) and Data <= Today() and TotalLiquido = 0, '4M',
if( Data >= Date(Today()-90)) and Data <= Today() and TotalLiquido = 0, '3M',
if( Data >= Date(Today()-60)) and Data <= Today() and TotalLiquido = 0, '2M',
if( Data >= Date(Today()-30)) and Data <= Today() and TotalLiquido = 0, '1M'
))))) as [NovoCampo]
RESIDENT TabelaAgrupada;
DROP TABLE TableAgrupada;
Vlw Yuri, ajudou muito!
Show! 🙂