
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Tabela com dados duplicados
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.
Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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;
E-Mail or Skype - danilo16stochi@hotmail.com

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is the sequence column available in data? Is it Always A & B?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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;
E-Mail or Skype - danilo16stochi@hotmail.com

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Boa tarde,
O que o Danilostochi me ajudou muito e solucionou para o que eu precisava.
Muito obrigada pela contribuição de todos.
