Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde pessoal.
Estou com uma dificuldade para obter o subtotal correto de uma expressão. Nela faço a soma simples de um campo (SUM(DISTINCT(QTDE_VOLS)) e encontro a quantidade correta por nota fiscal. Porém como estou usando DISTINCT, o subtotal soma somente as quantidades distintas. Ou seja, se uma quantidade se repete, ela está sendo somada somente uma vez no total final.
Exemplo: quantidades, 3, 5, 2, 13, 9 e 5. O total destas quantidades é 37, mas como o 5 se repete, ele é somado apenas uma vez, resultando num total de 32.
Existe alguma maneira deste subtotal ficar correto, mesmo com o uso do distinct que é uma necessidade neste caso?
Desde já agradeço a todos.
Atenciosamente,
Edson Marques.
Bom dia a todos.
Primeiramente agradeço a todos que postaram sugestões. Quanto a solução do caso, acabei optando por remodelar o script e evitar o uso do DISTINCT conforme sugestão do Yuri e que de fato acabou resolvendo o problema.
Muito obrigado.
Edson Marques.
Boa tarde.
Nesse caso, você pode usar o dimensionality ( ).
Você irá calcular mais ou menos assim:
If(dimensionality ( ) = 1, SUM(DISTINCT(QTDE_VOLS)), SUM(QTDE_VOLS)
Antes de alterar, crie uma expressão no gráfico com valor o dimensionality ( )
Lá você verá qual o número para as linhas detalhe e para a linha de total.
Independente disso, vai ficar estranho a soma do total ser diferente da soma das linhas.
Edson, muito cuidado com o DISTINCT hein, talvez você tenha que melhorar sua modelagem para não que não seja mais necessária a utilização do DISTINCT em sua conta.
Reveja o seu modelo.
Realmente Yuri. Percebi o erro nos totais somente após um detalhe que me chamou a atenção. Caso contrário teria passado batido e iria notar somente quando houvesse um problema maior. Vou tentar a opção que o Luciano indicou e caso não resolva vou rever a modelagem.
Obrigado.
Boa tarde Luciano, vou tentar aqui e posteriormente posto o resultado.
Muito obrigado.
Ok, ficamos no aguardo.
Mas pensando no comentário do Yuri, refaço o questionamento:Não é estranho a soma do total ser diferente da soma das linhas detalhe?
Isso é estranho tanto no seu gráfico/análise, quanto na nuvem de dados. Provavelmente você está exponenciando as linhas com algum join incorreto.
Seria bom revalidar os números e a nuvem de dados.
Luciano, não é estranho devido ao DISTINCT.
A tabela dinâmica refaz o cálculo no total sem a dimensão, desta forma se existirem valores iguais de notas ele vai considerar somente 1 destes valores e isso faz com que o total seja menor que o número verdadeiro.
Boa tarde.
Concordo com o Yuri. Rever a modelagem para evitar isto seria bom, mas nem sempre possível (tempo x entrega).
Mas, se for para colocar uma expressão de uma forma que de o numero esperado, eu sugiro usar o aggr
sum( aggr ( sum(distinct QTDE_VOLS), CAMPO_CHAVE_NOTA ))
Mas lembrar que a performance vai ser prejudicada em virtude de ser criado uma tabela virtual para fazer o calculo da expressão do aggr....
Na realidade se conseguir fazer os cálculos sem o aggr, ganha-se performance, mas ai precisa ver como esta a sua modelagem.
Att,
Alessandro Furtado
Você não entendeu a minha estranheza.
Acho estranho ele querer um totalizador diferente da soma das linhas que ele mostra.
No mínimo para amenizar deveria ter pelo menos um count para caso alguém questione, se multiplique o valor pelo count e o total bata.
Para mim é um sinal que têm algo errado coma a informação ou com a nuvem de dados.
Com certeza Luciano, para ter que usar um SUM DISTINCT é certeza de ter problema no modelo ou na lógica utilizada.