
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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/2015 | 4862 | 3709313,96 |
08/01/2015 | 4938 | 3751763,29 |
TOTAL | 5586 | 424136901 |
COUNT(PEDIDO) E SUM(VALOR PEDIDO)
09/01/2015 | 12364 | 4269955,17 |
08/01/2015 | 12767 | 4317598,18 |
TOTAL | 25131 | 858755335 |
Qual seria a forma correta de fazer ?
Obrigado.
- Tags:
- Group_Discussions
- « Previous Replies
-
- 1
- 2
- Next Replies »
Accepted Solutions


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


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

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


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

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


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sim, considera.
O QlikView faz isso apenas para economizar memória.

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


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Isso mesmo!

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


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

- « Previous Replies
-
- 1
- 2
- Next Replies »