Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal,
Estou com uma dificuldade e gostaria de compartilhar com vocês.
Vejam o script abaixo:
DADOS_TEMP:
LOAD * Inline [
ID,CHAVE_ACESSO
1,10
2,20
3,15
4,10
5,20
6,25
];
DADOS:
LOAD
*,
If(Previous(CHAVE_ACESSO)=CHAVE_ACESSO,'Duplicado','OK') AS DUPLICADO
RESIDENT DADOS_TEMP;
DROP TABLE DADOS_TEMP;
Pois bem, imaginei que o campo "DUPLICADO" me apontaria os ID's 4 e 5 como "Duplicados", contudo não funcionou. Usei o Peek também ao invés do Previous e ainda assim nada.
Imagino que o Previous verifique o dado anterior somente (meio óbvia esta constatação) e o que eu gostaria era algo capaz de "varrer" a coluna de cima para baixo verificando a condição estabelecida.
Vocês sugerem criar um laço de repetição para isso? Como vocês fariam, mestres?
Abraços
Pessoal,
Vejam se essa resolução seria uma boa:
DADOS_TEMP:
LOAD * Inline [
ID,CHAVE_ACESSO
1,10
2,20
3,15
4,10
5,20
6,25
];
DADOS:
LOAD
*,
If(Previous(CHAVE_ACESSO)=CHAVE_ACESSO,'Duplicado','OK') AS DUPLICADO
RESIDENT DADOS_TEMP Order By CHAVE_ACESSO ASC;
DROP TABLE DADOS_TEMP;
Pra esse script o Order By me ajudou...
Vocês resolveriam de outra forma?
Pessoal,
Vejam se essa resolução seria uma boa:
DADOS_TEMP:
LOAD * Inline [
ID,CHAVE_ACESSO
1,10
2,20
3,15
4,10
5,20
6,25
];
DADOS:
LOAD
*,
If(Previous(CHAVE_ACESSO)=CHAVE_ACESSO,'Duplicado','OK') AS DUPLICADO
RESIDENT DADOS_TEMP Order By CHAVE_ACESSO ASC;
DROP TABLE DADOS_TEMP;
Pra esse script o Order By me ajudou...
Vocês resolveriam de outra forma?
Thiago,
faltou somente o ORDER BY
DADOS_TEMP:
LOAD * Inline [
ID,CHAVE_ACESSO
1,10
2,20
3,15
4,10
5,20
6,25
];
DADOS:
LOAD
*,
If(Previous(CHAVE_ACESSO)=CHAVE_ACESSO,'Duplicado','OK') AS DUPLICADO
RESIDENT DADOS_TEMP ORDER BY CHAVE_ACESSO;
DROP TABLE DADOS_TEMP;
outra forma seria usar o EXISTS(). Mas neste caso não pode ter ser lido antes por tabela temporária ou mesmo em outra tabela......
DADOS_TEMP:
LOAD
*,
if(Exists(CHAVE_ACESSO),'Duplicado','Ok') as DUPLICADO
Inline [
ID,CHAVE_ACESSO
1,10
2,20
3,15
4,10
5,20
6,25
];
Então mestre, acabei resolvendo com o Order By, conforme acima. Mas gostei também da ideia do Exists.