Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Fala pessoa, tudo certo? Queria uma ajuda.
Eu tenho uma Tabela onde tenho um campo ID_ORCAMENTO, MOTIVO, DATA_HORA
Quero que ele remova a linha anterior se o MOTIVO for igual a seu anterior.
Está assim (SERVIÇO FINALIZADO 2 vezes)
ID_ORCAMENTO | MOTIVO | DATA_HORA |
023545 | ||
023545 | SERVIÇO AGENDADO | 05/02/2020 08:33:49 |
023545 | SERVIÇO PENDENTE | 05/02/2020 14:11:36 |
023545 | SERVIÇO FINALIZADO | 06/02/2020 09:55:14 |
023545 | SERVIÇO FINALIZADO | 06/02/2020 10:46:33 |
Quero que fique assim (apenas o próximo SERVIÇO FINALIZADO)
ID_ORCAMENTO | MOTIVO | DATA_HORA |
023545 | ||
023545 | SERVIÇO AGENDADO | 05/02/2020 08:33:49 |
023545 | SERVIÇO PENDENTE | 05/02/2020 14:11:36 |
023545 | SERVIÇO FINALIZADO | 06/02/2020 10:46:33 |
Grato.
Boa noite, acredito que isso lhe sirva:
T:
LOAD
NUM(ID_ORCAMENTO) AS ID_ORCAMENTO,
TEXT(TRIM(MOTIVO)) AS MOTIVO,
TIMESTAMP(DATA_HORA) AS DATA_HORA,
;
LOAD * INLINE [
ID_ORCAMENTO MOTIVO DATA_HORA
023545
023545 SERVIÇO AGENDADO 05/02/2020 08:33:49
023545 SERVIÇO FINALIZADO 05/02/2020 08:33:49
023545 SERVIÇO PENDENTE 05/02/2020 14:11:36
023545 SERVIÇO FINALIZADO 06/02/2020 09:55:14
023545 SERVIÇO FINALIZADO 06/02/2020 10:46:33
56789 SERVIÇO AGENDADO 05/02/2020 08:40:49
56789 SERVIÇO FINALIZADO 05/02/2020 08:50:49
56789 SERVIÇO PENDENTE 05/02/2020 14:10:36
56789 SERVIÇO FINALIZADO 06/02/2020 09:59:14
56789 SERVIÇO FINALIZADO 06/02/2020 10:59:33
](delimiter is '\t');
NOCONCATENATE TAB:
LOAD
*,
IF(PREVIOUS(MOTIVO) = MOTIVO,
IF(PREVIOUS(ID_ORCAMENTO)=ID_ORCAMENTO,1)) AS Verificador
Resident T
ORDER BY ID_ORCAMENTO, MOTIVO, DATA_HORA DESC;
NOCONCATENATE
FINAL:
LOAD ID_ORCAMENTO, MOTIVO, DATA_HORA
Resident TAB
WHERE Verificador <> 1
ORDER BY ID_ORCAMENTO, DATA_HORA;
DROP TABLE T, TAB;
Rode aos poucos e busque entender para aplicar ao seu modelo.
Tentei fazer pela interface mas não surtiu um resultado legal com a função FirstSortedValue()
Boa noite, acredito que isso lhe sirva:
T:
LOAD
NUM(ID_ORCAMENTO) AS ID_ORCAMENTO,
TEXT(TRIM(MOTIVO)) AS MOTIVO,
TIMESTAMP(DATA_HORA) AS DATA_HORA,
;
LOAD * INLINE [
ID_ORCAMENTO MOTIVO DATA_HORA
023545
023545 SERVIÇO AGENDADO 05/02/2020 08:33:49
023545 SERVIÇO FINALIZADO 05/02/2020 08:33:49
023545 SERVIÇO PENDENTE 05/02/2020 14:11:36
023545 SERVIÇO FINALIZADO 06/02/2020 09:55:14
023545 SERVIÇO FINALIZADO 06/02/2020 10:46:33
56789 SERVIÇO AGENDADO 05/02/2020 08:40:49
56789 SERVIÇO FINALIZADO 05/02/2020 08:50:49
56789 SERVIÇO PENDENTE 05/02/2020 14:10:36
56789 SERVIÇO FINALIZADO 06/02/2020 09:59:14
56789 SERVIÇO FINALIZADO 06/02/2020 10:59:33
](delimiter is '\t');
NOCONCATENATE TAB:
LOAD
*,
IF(PREVIOUS(MOTIVO) = MOTIVO,
IF(PREVIOUS(ID_ORCAMENTO)=ID_ORCAMENTO,1)) AS Verificador
Resident T
ORDER BY ID_ORCAMENTO, MOTIVO, DATA_HORA DESC;
NOCONCATENATE
FINAL:
LOAD ID_ORCAMENTO, MOTIVO, DATA_HORA
Resident TAB
WHERE Verificador <> 1
ORDER BY ID_ORCAMENTO, DATA_HORA;
DROP TABLE T, TAB;
Rode aos poucos e busque entender para aplicar ao seu modelo.
Tentei fazer pela interface mas não surtiu um resultado legal com a função FirstSortedValue()
Muito Obrigado, Tiago. td certo.
Abs.