10 Replies Latest reply: Mar 3, 2016 4:34 AM by Cesar Accardi RSS

    Calculo de valor em gráfico

    DOMINGOS SAVIO ARRUDA BUENO

      Bom dia comunidade.

       

      Estou com a seguinte questão que já quebrei a cabeça aqui e agora estou com dois problemas, um é a dor de cabeça e a outra não ter conseguido resolver e por isso estou aqui.

       

      O campo Total da Nota Fiscal, do gráfico do tipo tabela simples intitulado Emitente, é composto pela seguinte expressão (Valor no retângulo verde):

       

      (Sum(VPROD_PROD) + Sum(VFRETE_PROD) + Sum(VIPI_TOT) + Sum(VICMSST_ICMS_DET)+ Sum(VSEG_TOT) + Sum(VOUTRO_TOT)) - VDESC_TOT

       

      Os demais campos disponíveis neste objeto fazem parte da dimensão, conforme imagem abaixo.

       

      MCE.png

       

      O objeto gráfico do tipo pizza tem como dimensão a UF do Emitente e a expressão é quase a mesma, somente com uma diferença, que está em negrito:

       

      ((Sum(VPROD_PROD) + Sum(VFRETE_PROD) + Sum(VIPI_TOT) + Sum(VICMSST_ICMS_DET)+ Sum(VSEG_TOT) + Sum(VOUTRO_TOT)) - SUM(VDESC_TOT))

       

      Na tabela simples, o valor do retângulo verde já foi homologado pelo cliente, entretanto se eu retirar o SUM() do valor do desconto (VDESC_TOT), o gráfico não é apresentado em sua totalidade, mas apenas quando uma chave de acesso da NFe é selecionada.

       

      A pergunta é como resolver para que o cálculo do gráfico fique o mesmo da tabela?

        • Re: Calculo de valor em gráfico
          Eduardo Endo

          você quer que some tudo mesmo sem estar selecionado?

          SUM({1} VDESC_TOT)

          • Re: Calculo de valor em gráfico
            Rogerio Ferreira

            Sávio,

             

            Isto está me parecendo um problema na modelagem, pois, caso os dois campos

            (UF e Valor do Desconto) estivessem na mesma tabela, não haveria este

            problema.

             

            Me surpreende o valor do desconto estar sendo calculado na tabela sem o sum

            ou um outro agregador. Está mais para que o gráfico de pizza esteja certo

            do que o de tabela...

             

            Eu geralmente costumo fazer uma seleção pequena onde há diferenças para

            poder achar os erros. Veja se consegue selecionar uma UF que tenha

            diferenças e exporte a posição analítica, talvez um objeto tabela com os

            dados da NF seja suficiente. Exporte tanto da tabela quanto do gráfico e

            então no excel mesmo faça os cruzamentos, tenho certeza de que poderás

            chegar nas diferenças.

             

            Abraços.

             

            Em 1 de março de 2016 11:00, Sávio Bueno <qcwebmaster@qlikview.com>

            escreveu:

             

             

             

              • Re: Calculo de valor em gráfico
                DOMINGOS SAVIO ARRUDA BUENO

                Grande Rogério tudo bem contigo?

                 

                Bom meu velho, eu fiz vários testes e estes que você sinalizou também fiz antes de pedir penico. Só não exportei para o excel.

                 

                O campo UF_EMIT é a dimensão do gráfico de pizza e nesta mesma tabela tenho estes valores num grande ETL feito.

                 

                A expressão na tabela foi feita junto aos gestores, 2 no caso, onde sinalizaram que o valor do desconto não deveria ser somado. Também achei estranho, mas fazendo a seleção parcial das informações, ou seja, com poucos dados, os valores batem, incluindo no gráfico de pizza.

                 

                O gráfico de pizza anteriormente estava com a dimensão UF_EMIT e a expressão SUM(VNF_TOT), entretanto, caso uma nota fiscal tenha vários itens, o SUM(VNF_TOT) é calculado também, um exemplo:

                 

                Nota fiscal 0142
                Valor total da nota fiscal: R$ 5.000,00

                Detalhe da Nota Fiscal:

                • item 1: R$ 1.000,00;
                • item 2: R$ 500,00;
                • item 3: R$ 3.000,00.
                • Taxas, descontos, etc: R$ 500,00

                 

                O valor no gráfico e na tabela ao invés de ser somente R$ 5.000, era apresentado R$ 15.000,00. A cada item ele somava o valor da nota.

                 

                Uma informação que talvez possa estar errado que foi sinalizado na sua mensagem, é que na extração das informações da NFE, várias tabelas foram carregadas juntas, dentre elas a tabela de detalhamento dos itens da NFE (NFE_PROD) e dos valores totais do icms (NFE_ICMSTOT).

                Seria o caso de não trazer na carga, a mesma tabela com estas informações ou tem como resolver isso com Analise de Conjunto, em se tratando de utilizar o campo correto NFE_ICMSTOT.VNF ?

                 

                Agradeço antecipadamente a atenção dispensada.

                  • Re: Calculo de valor em gráfico
                    Rogerio Ferreira

                    Sávio,

                     

                    Acho que quase entendi o problema, mas seria possível dar uma olhada na

                    imagem da modelagem deste documento? Teria como vc me mandar a imagem das

                    tabelas relacionadas? Creio que ficaria mais fácil de analisar se a Análise

                    de conjunto resolveria...

                     

                    Abraços.

                     

                    Em 1 de março de 2016 20:45, Sávio Bueno <qcwebmaster@qlikview.com>

                    escreveu:

                     

                     

                     

                      • Re: Calculo de valor em gráfico
                        DOMINGOS SAVIO ARRUDA BUENO

                        Certo Rogério, segue a visão geral das tabelas. Fiz uma montagem para caber tudo numa mesma imagem.

                         

                        MCE_VisaoTabelasInternas.png

                         

                        Mais uma vez agradeço pela boa vontade e empenho.

                          • Re: Calculo de valor em gráfico
                            Rogerio Ferreira

                            Sávio,

                             

                            Pelo que entendi, na tabela NFE você traz todos os dados inclusive o dos

                            produtos. No caso em questão, creio que o valor do desconto não consta

                            rateado pelos produtos, você deve estar repetindo o mesmo valor para todos

                            os produtos.

                             

                            Neste caso quando você utilizar o SUM, ele vai somar o mesmo valor várias

                            vezes, de acordo com a quantidade de produtos na NF.

                             

                            Pode ser que fique mais lento, mas já tentou dividir o valor total de

                            desconto pelo count dos id_produto? Acho que você não vai conseguir refazer

                            o script de carga, devido ao trabalhoso processo de reimportar, mas

                            dividindo pela quantidade você não somaria o valor mais de uma vez, mas

                            sim, valor já rateado.

                             

                            Veja se consegue.

                             

                            Abraços.

                             

                            2016-03-02 14:17 GMT-03:00 Sávio Bueno <qcwebmaster@qlikview.com>:

                             

                             

                             

                            • Re: Calculo de valor em gráfico
                              Cesar Accardi

                              Ola Savio,

                               

                              Conforme o Rogerio comentou, o problema parece estar no valor desconto estar repetido para cada produto. Isso explicaria por que a formula sem agregacao funciona na tabela que possui os detalhes da nota e nao no grafico de pizza (nivel de granularidade menor e portanto multiplos valores para cada valor da dimensao).

                               

                              Voce pode fazer o seguinte, agregar o valor de desconto para cada nota fiscal:

                               

                              sum(aggr(avg(VDESC_TOT), COD_INFNFE))

                               

                              Essa formula fara com que o desconto seja calculado ignorando as repeticoes para cada NF, como o aggr() precisa de uma funcao de agregacao usamos avg() ja que a media de um valor repetido e o proprio valor.

                               

                              Para os demais valores a nivel de produto voce pode usar o sum() mesmo, a formula final ficaria assim:

                               

                              (Sum(VPROD_PROD) + Sum(VFRETE_PROD) + Sum(VIPI_TOT) + Sum(VICMSST_ICMS_DET)+ Sum(VSEG_TOT) + Sum(VOUTRO_TOT)) - sum(aggr(avg(VDESC_TOT), COD_INFNFE))


                              Essa formula deve continuar mostrando o mesmo valor na tabela e corrigir o valor do grafico.


                              Abracos,


                              Cesar

                          • Re: Calculo de valor em gráfico
                            Cesar Accardi

                            Ola Savio,

                             

                            Por acaso existem valores nulos para o campo "UF_EMIT" ? Voce marcou a opcao no grafico de pizza para oculta-los?

                              • Re: Calculo de valor em gráfico
                                Cesar Accardi

                                Uma sugestao, tente escrever a expressao da seguinte forma:

                                 

                                Sum(VPROD_PROD + VFRETE_PROD + VIPI_TOT + VICMSST_ICMS_DET + VSEG_TOT + VOUTRO_TOT- VDESC_TOT)

                                 

                                Estou assumindo que todos os campos estao na mesma tabela ou possuem o mesmo nivel de granularidade. Se este e o caso, entao o recomendado e somar primeiro os campos e depois agregar pelas dimensoes.

                                • Re: Calculo de valor em gráfico
                                  DOMINGOS SAVIO ARRUDA BUENO

                                  Boa tarde Cesar.

                                   

                                  O Campo UF_EMIT é de preenchimento obrigatório por parte do emissor da nota fiscal, logo, não pode vir nulo. Caso venha, a aplicação que recebe o XML (robô), recusa e informa ao emitente.

                                   

                                  Utilizando sua sugestão de fórmula, o valor apresentado é muito menor que o esperado. De qualquer forma, obrigado pela ajuda.