Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Tarde,
Eu tenho uma situação onde faço um filtro de um material e um mês e obtenho apenas algumas datas, uma vez que esse material não tem valor em alguns dias do mês selecionado.
Com os valores que tenho gostava de obter 2 situações das quais não estou a conseguir resolver.
Podem ver a explicação no .qvw enviado em anexo.
Espero que alguém me possa ajudar.
Obrigada.
Rute
Ana, você pode criar um calendário (com todos os dias) e vincular com a sua tabela fato, dessa forma você consegue identificar quais os dias não teve venda.
Exemplo de como criar calendário: Função para Criar Calendário (Utilizando Data existente no modelo) ou Função para Criar Calendário (Passando datas)
Yuri,foi decidido retirar todos os registos da tabela de facto com valor igual a zero, isto com o objectivo de termos ganhos na performance e no tamanho do qvw, porque o qvw neste momento já se encontra com 1.5 GB.
Antes de considerar voltar a carregar todos os registos com valores iguais a zero, gostaria realmente de excluir todas as hipóteses de fazer estas expressões, isto porque o carregamento dos registos com valores iguais a zero irá ter um impacto muito negativo uma vez que estamos perante a muita informação.
Relativamente à contagem dos dias que tenho value igual a zero, já está resolvido. Basicamente criei a expressão que me dá a contagem dos dias em que o valor é igual a zero e subtrai esse resultado ao número de dias do respectivo mês.
Agora falta-me uma expressão para calcular os períodos, sem que tenha de aumentar os registos presentes na aplicação.
Ana
Entendo sua preocupação Ana, mas a única forma de fazer essa contagem é criando uma tabela de calendário. A quantidade de registros de uma tabela de calendário é insignificante, apenas uma linha por data, e não causará lentidão em sua aplicação.
Lembre-se que você não vai juntar essas tabelas com JOIN, apenas fará o vinculo com um campo de chave.
Feito isso você coloca a dimensão de data da tabela de Calendário e assim conseguirá contar as datas que não houveram venda.
Apenas corrigindo: Não é a única forma, mas você precisa criar uma maneira de comparar o que você não tem em sua tabela fato que é uma tabela que possui todas as datas possíveis.
Bom Dia,
Eu já tenho uma Master Calendar que contem todos os dias dos meses. No exemplo que dei quis apenas mostrar com que dias fico quando faço o filtro pelo Material A.
Exemplo (Na tabela de facto só temos os registos dos materiais para as datas onde o value é diferente de 0... Mas a Master Calendar terá sempre todos os dias desde a data mínima até a data máxima da aplicação)
Material | Date | Value |
---|---|---|
B | 01/05/2015 | 12 |
B | 02/05/2015 | 15 |
B | 03/05/2015 | 111 |
B | 04/05/2015 | 1234 |
B | 05/05/2015 | 3454 |
B | 06/05/2015 | 432 |
B | 07/05/2015 | 2345 |
A | 08/05/2015 | 4532 |
A | 09/05/2015 | 523 |
A | 10/05/2015 | 435 |
A | 11/05/2015 | 1316 |
A | 12/05/2015 | 1631 |
A | 13/05/2015 | 3 |
A | 14/05/2015 | 135 |
A | 15/05/2015 | 12 |
A | 16/05/2015 | 5132 |
A | 17/05/2015 | 6645 |
A | 18/05/2015 | 13 |
A | 19/05/2015 | 324 |
A | 20/05/2015 | 351 |
A | 21/05/2015 | 1324 |
A | 22/05/2015 | 135 |
A | 23/05/2015 | 57 |
A | 24/05/2015 | 876 |
A | 25/05/2015 | 734 |
A | 26/05/2015 | 3546 |
A | 27/05/2015 | 2356 |
A | 28/05/2015 | 2436 |
B | 29/05/2015 | 374 |
B | 30/05/2015 | 84 |
B | 31/05/2015 | 8756 |
Resultado que pretendo atingir com uma expressão que me calcule os períodos em que o value é igual a zero:
Material | Periodos = 0 |
---|---|
A | 2 |
B | 1 |
Períodos dos respectivos Materiais:
A -> Tem value igual a zero/null nas datas de 01/05/2015 a 07/05/2015 e depois 29/05/2015 a 31/05/2015... O que faz dois períodos!
B -> tem value igual a zero/null nas datas de 08/05/2015 a 28/05/2015... o que faz um período apenas.
Alguém consegue dar uma ideia de como é possível fazer esta expressão para calcular os períodos?
Ana
Segue um exemplo para calcular os dias sem vendas.
Referente ao período: você considera um período o intervalo de quantos dias sem vendas?
Yuri,
Basta um dia sem value para ser considerado um período.
Por Exemplo:
Date | Value |
---|---|
01-05-2015 | 234 |
02-05-2015 | 0 |
03-05-2015 | 244 |
Teríamos um período entre o dia 1 e o dia 3.
Ana, boa tarde.
Já achou uma solução? Se sim, marque umas das respostas como "Correta" para fechar o tópico e nos ajudar a manter o forum organizado.