Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Dados Duplicados

Boa Tarde.

Estou criando um objeto de gráfico/tabela simples, mas estou tento um probleminha com dados duplicados, segue abaixo como estou fazendo.

Tenho a tabela pedidos abertos que é criada todos os dias, ou seja, é um raio x diário dos meus pedidos abertos.

Se o processo rodar dia 12/01 e encontrar um pedido aberto, será criado um registro para este pedido na tabela

pedidos abertos com a data do dia 12/01, quando o processo rodar no dia 13/01 e o mesmo pedido estiver aberto,

sera criado um novo registro deste pedido com a data do processo do dia 13/01. como mostra o exemplo abaixo:

dia processado      pedido  produto  qtd vendido  valor total

12/1                     123      A           2                 10

12/1                     123      B           3                 20

13/1                     123      A           2                 10

13/1                     123      B           3                 20

Quando crio um gráfico/tabela simples estou colocando como dimensão o DIA do processo e nas expressões estou colocando o count(pedido) e sum(valorTotal). Mas me surgiu uma dúvida esta certo fazer o count desta forma ? então fiz o count(distinct pedido), quando fiz isso notei que diminuiu a quantidade de pedido por dia, mas a quantidade total não bateu.

COM COUNT(DISTINCT PEDIDO)  E SUM(DISTINCT VALOR TOTAL)

09/01/201548623709313,96
08/01/201549383751763,29
TOTAL5586424136901

COUNT(PEDIDO) E SUM(VALOR PEDIDO)

09/01/2015123644269955,17
08/01/2015127674317598,18
TOTAL25131858755335

Qual seria a forma correta de fazer ?

Obrigado.

Labels (3)
1 Solution

Accepted Solutions
nicolett_yuri

o Count distinct esta correto, porém o Sum Distinct pode te gerar problema, pois se você tiver pedidos diferentes com o mesmo valor para o mesmo dia, ele não contará.

Para que esses valores não sejam emitidos, basta fazer a seguinte expressão:

SUM(AGGR(SUM(DISTINCT VALOR_PEDIDO), PEDIDO,PRODUTO,DIA))

OBS:talvez seja necessário ajustar a expressão devido ao seu modelo de dados e até os dados.

A ideia desse cálculo é que o qlikview faça um loop no cálculo no qual não "omitirá" que deveria aparecer.

View solution in original post

10 Replies
nicolett_yuri

o Count distinct esta correto, porém o Sum Distinct pode te gerar problema, pois se você tiver pedidos diferentes com o mesmo valor para o mesmo dia, ele não contará.

Para que esses valores não sejam emitidos, basta fazer a seguinte expressão:

SUM(AGGR(SUM(DISTINCT VALOR_PEDIDO), PEDIDO,PRODUTO,DIA))

OBS:talvez seja necessário ajustar a expressão devido ao seu modelo de dados e até os dados.

A ideia desse cálculo é que o qlikview faça um loop no cálculo no qual não "omitirá" que deveria aparecer.

Not applicable
Author

Certo.

Yuri agora eu percebi um detalhe importante, Eu estou fazendo a importação do arquivo txt desta forma:

PEDIDOS:

LOAD [dt movimen] as chaveData,

          loja,

          pedido,

          cod.produ,

          [qt. vendida],

          [total item],

        

FROM

[..\Luiz\pedidos_0801.txt]

(txt, utf8, embedded labels, delimiter is ';');

Depois da importação estou criando uma lista simples somente com os números do pedido e notei que não se repetem mesmo eu tendo linhas no txt com o mesmo pedido para mesma loja.

Isso está correto ? o Qlikview automaticamente mostra somente uma unica vez o item repetido ?

nicolett_yuri

O qlikview omite as linhas iguais (por padrão) porém os resultados iguais continuam a ser calculados.

Faça um teste, nessa lista, clique com o botão direito e na aba geral habilite Mostrar Frequencia, caso tenha valor repetido por pedido, ele mostrará um número maior que um na direita.

Not applicable
Author

Então mesmo ele omitindo as linhas por padrão se usar o count(pedido) por exemplo ele vai considerar todos os dados inclusive os duplicados ?

nicolett_yuri

Sim, considera.

O QlikView faz isso apenas para economizar memória.

Not applicable
Author

Certo.

Como para cada linhas se tem produto diferente para um pedido e uma loja exemplo:

loja pedido item qtd valor

019 123     A     2     10

019 123     B     1     12

019 123     C     2     15

Devo usar o count(distinct pedido)  no item posso fazer count(item) e no valor sum(valor).

para obter:

loja  pedido item valor

019  123     03    37,00

Correto.

nicolett_yuri

Isso mesmo!

Not applicable
Author

Vou te incomodar só mais um pouco.

To fazendo exatamente isso no gráfico/table simples mas o total de pedidos não bate.

na tabela aparece desta forma:


loja  dia     count(distinct pedido) sum(valor item)

019 11/01  112                           74735,44                 

019 12/01  121                           95265,83  

TOTAL      146                           170.001,27

Deveria mostrar a soma dos dois 233...?

nicolett_yuri

Luiz, isso porque a tabela esta refazendo a conta com o Distinct. Para que a conta dê 233, basta alterar o modo total para Soma de Linhas (na aba apresentação), caso esteja utilizando um gráfico do tipo tabela simples.