Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Amigos, bom dia.
Tenho um problema. Preciso exibir a data em que houve mudança de Status de uma tabela.
Seria algo assim:
COD CLIENTE | data | STATUS |
g0001 | 01/04/2017 | 2 |
g0001 | 02/04/2017 | 2 |
g0001 | 03/04/2017 | 2 |
g0001 | 04/04/2017 | 2 |
g0001 | 05/04/2017 | 3 |
g0001 | 06/04/2017 | 3 |
g0001 | 07/04/2017 | 3 |
g0001 | 08/04/2017 | 3 |
g0001 | 09/04/2017 | 3 |
g0001 | 10/04/2017 | 3 |
g0001 | 11/04/2017 | 3 |
A mudança foi no dia 05/04/2017, então precisaria exibir essa data.
Alguma luz?
André
Uma maneira é criar um flag no script indicando quando houve a mudança.
Dai você pode manipular via uma lista ou Set Analysis.
Only({<FlagAlterado={"1"}>}Data)
Amigo, segue:
=Min({< [STATUS]={'$(=Max([STATUS]))'}>} [data])
Obrigado pela resposta!!
A lógica tá correta se o Status for sempre maior.
E se for de 2 pra 0?
Uma maneira é criar um flag no script indicando quando houve a mudança.
Dai você pode manipular via uma lista ou Set Analysis.
Only({<FlagAlterado={"1"}>}Data)
Então poderá tratar via script, segue exemplo;
temp_TAB_SITUACAO:
Load *
Inline [
COD CLIENTE|data|STATUS
g0001|04/04/2017|2
g0001|09/04/2017|3
g0001|10/04/2017|1
g0001|11/04/2017|3
g0001|13/04/2017|2
g0001|14/04/2017|2
g0001|15/04/2017|1
g0001|16/04/2017|1
g0002|13/04/2017|5
g0002|14/04/2017|3
g0002|15/04/2017|3
](delimiter is '|');
TAB_SITUACAO:
Load *,
AutoNumber(If([COD CLIENTE]=Previous([COD CLIENTE]) And STATUS<>Peek([STATUS]),-1)) As 'Flag_Alt'
Resident temp_TAB_SITUACAO
Order By [COD CLIENTE], [data];
Drop Table temp_TAB_SITUACAO;
TAB_ULTIMA_MOV:
Load
[COD CLIENTE],
Date(Max([data])) As 'ÚLTIMA DATA'
Resident TAB_SITUACAO
Where Not IsNull([Flag_Alt])
Group By [COD CLIENTE];
Left Join
Load
[COD CLIENTE],
[data] As 'ÚLTIMA DATA',
[STATUS] As 'ÚLTIMO STATUS'
Resident TAB_SITUACAO;
Drop Field Flag_Alt;
Resultado:
Clever e Mario, obrigado pela ajuda.
O codigo do Clever funcionou direitinho aqui.