Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia
Estou lendo um qvd que tem dados repetidos, gostaria de saber como faço para eliminar os dados repetidos que seguisse o critério abaixo:
Sempre que houvesse uma %ChaveParcela repetida, queria pegar a sequencia B e não a A. Só carregaria a sequencia A se não houvesse %ChaveParcela repetida.
Depois que ler quero gravar esse dados num qvd novo, com dados limpos.
Boa tarde,
De uma forma bem rápida creio que esse script possa lhe atender, entretando deve existe N maneiras de resolver essa questão.
dados:
LOAD ChaveOrdem,
ChaveParcela,
DataEntrega,
Sequencia
FROM
[C:\Users\Danilo\Downloads\Pasta de trabalho.xlsx]
(ooxml, embedded labels, table is Planilha1);
NoConcatenate
dados2:
LOAD * Resident dados;
inner join (dados2)
LOAD
count(ChaveParcela) as FlgRepedido,
ChaveParcela
Resident dados Group by ChaveParcela;
DROP Table dados;
dados3:
LOAD
ChaveOrdem,
ChaveParcela,
DataEntrega,
Sequencia,
if(FlgRepedido >1,'B',Sequencia) as SequenciaNova
Resident dados2; DROP Table dados2;
Is the sequence column available in data? Is it Always A & B?
Sim, sempre será só A e B. Se houver chave duplicada trazer sempre o valor de B, senão o A deve vir também.
Boa tarde,
De uma forma bem rápida creio que esse script possa lhe atender, entretando deve existe N maneiras de resolver essa questão.
dados:
LOAD ChaveOrdem,
ChaveParcela,
DataEntrega,
Sequencia
FROM
[C:\Users\Danilo\Downloads\Pasta de trabalho.xlsx]
(ooxml, embedded labels, table is Planilha1);
NoConcatenate
dados2:
LOAD * Resident dados;
inner join (dados2)
LOAD
count(ChaveParcela) as FlgRepedido,
ChaveParcela
Resident dados Group by ChaveParcela;
DROP Table dados;
dados3:
LOAD
ChaveOrdem,
ChaveParcela,
DataEntrega,
Sequencia,
if(FlgRepedido >1,'B',Sequencia) as SequenciaNova
Resident dados2; DROP Table dados2;
Graziele, boa tarde.
Acredito que observei um ponto que não citou, mas a sequência aumenta conforme a data, certo? Então seria correto afirmar que, com base na maior data da %ChaveParcela, eu deveria trazer a Sequencia?
De qualquer modo, elaborei duas soluções para você analisar e aplicar à tua necessidade.
Método 1:
FATO:
LOAD * INLINE [
%ChaveOrdemComrpa %ChaveParcela DataEntrega Sequencia
2233 2233 12/02/2021 A
2233 2233 22/03/2021 B
2233 2233 22/03/2021 B
2244 2244 13/02/2021 A
2244 2244 20/02/2021 B
2244 2244 22/03/2021 C
2255 2255 20/03/2021 A
](delimiter is '\t');
INNER JOIN (FATO) LOAD
%ChaveParcela AS %ChaveParcela,
FIRSTSORTEDVALUE(DISTINCT Sequencia,-DataEntrega) AS Sequencia
RESIDENT FATO
GROUP BY
%ChaveParcela
;
Método 2:
TEMP:
LOAD * INLINE [
%ChaveOrdemComrpa %ChaveParcela DataEntrega Sequencia
2233 2233 12/02/2021 A
2233 2233 22/03/2021 B
2233 2233 22/03/2021 B
2244 2244 13/02/2021 A
2244 2244 20/02/2021 B
2244 2244 22/03/2021 C
2255 2255 20/03/2021 A
](delimiter is '\t');
LEFT JOIN (TEMP) LOAD
%ChaveParcela AS %ChaveParcela,
COUNT(%ChaveParcela) AS Quantidade
RESIDENT TEMP
GROUP BY
%ChaveParcela
;
FATO:
LOAD
%ChaveOrdemComrpa,
%ChaveParcela,
DataEntrega,
Sequencia
RESIDENT TEMP
WHERE Quantidade = 1;
LOAD
%ChaveOrdemComrpa,
%ChaveParcela,
DataEntrega,
Sequencia
RESIDENT TEMP
WHERE Quantidade > 1 AND Sequencia = 'B';
DROP TABLE TEMP;
Resultado nos dois métodos:
Estou anexando o QVF também, abs.
Boa tarde,
O que o Danilostochi me ajudou muito e solucionou para o que eu precisava.
Muito obrigada pela contribuição de todos.