Qlik Community

Brasil

Announcements
QlikWorld 2022, LIVE in Denver CO., May 16-19, 2022. REGISTER NOW TO RECEIVE EARLY BIRD PRICING
cancel
Showing results for 
Search instead for 
Did you mean: 
grazielegretter
Contributor III
Contributor III

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:

grazielegretter_2-1625755662743.png

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.

 

1 Solution

Accepted Solutions
danilostochi
Creator II
Creator II

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;

danilostochi_0-1625778886041.png

 

 

 

 

 

 

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com

View solution in original post

5 Replies
Kushal_Chawda

Is the sequence column available in data? Is it Always A & B?

grazielegretter
Contributor III
Contributor III
Author

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.

danilostochi
Creator II
Creator II

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;

danilostochi_0-1625778886041.png

 

 

 

 

 

 

+55(44) 9 9993-3605, WhatsApp
E-Mail or Skype - danilo16stochi@hotmail.com

View solution in original post

TiagoCardoso
Creator II
Creator II

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:

TiagoCardoso_0-1625779460381.png

 

Estou anexando o QVF também, abs.

 

 

grazielegretter
Contributor III
Contributor III
Author

Boa tarde,

O que o Danilostochi  me ajudou muito e solucionou para o que eu precisava.

Muito obrigada pela contribuição de todos.