9 Replies Latest reply: Jul 6, 2016 12:38 PM by Clever Anjos RSS

    Ajuda a criar expressão

    Ana Caeiro

      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

        • Re: Ajuda a criar expressão
          Yuri Nicolett

          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)

            • Re: Ajuda a criar expressão
              Ana Caeiro

              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

                • Re: Ajuda a criar expressão
                  Yuri Nicolett

                  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.

                    • Re: Ajuda a criar expressão
                      Yuri Nicolett

                      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.

                        • Re: Ajuda a criar expressão
                          Ana Caeiro

                          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)

                          MaterialDateValue
                          B01/05/201512
                          B02/05/201515
                          B03/05/2015111
                          B04/05/20151234
                          B05/05/20153454
                          B06/05/2015432
                          B07/05/20152345
                          A08/05/20154532
                          A09/05/2015523
                          A10/05/2015435
                          A11/05/20151316
                          A12/05/20151631
                          A13/05/20153
                          A14/05/2015135
                          A15/05/201512
                          A16/05/20155132
                          A17/05/20156645
                          A18/05/201513
                          A19/05/2015324
                          A20/05/2015351
                          A21/05/20151324
                          A22/05/2015135
                          A23/05/201557
                          A24/05/2015876
                          A25/05/2015734
                          A26/05/20153546
                          A27/05/20152356
                          A28/05/20152436
                          B29/05/2015374
                          B30/05/201584
                          B31/05/20158756

                           

                          Resultado que pretendo atingir com uma expressão que me calcule os períodos em que o value é igual a zero:

                          MaterialPeriodos = 0
                          A2
                          B1

                           

                          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

                  • Re: Ajuda a criar expressão
                    Clever Anjos

                    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.