Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
dairan73
Contributor III
Contributor III

Problema com soma e subtração de campos

Pessoal,

Estou com um problema para somar alguns valores e depois diminuir a soma de outros, exemplo:

Valores de Entrada

sum(Campo1) + sum(Campo 2) + sum(Campo 3)

-

Valor de Saída

sum(CampoA) + sum(Campo B) + sum(Campo C)


Tentei fazer da segunda forma (Valores de Entrada - Valores de Saída😞

(

     sum(Campo1) + sum(Campo 2) + sum(Campo 3)

)

-

(

sum(CampoA) + sum(Campo B) + sum(Campo C)

)


A soma dos valores de entrada deram 42240,9529 e a soma dos valores de saída também deram 42240,9529.

O problema é que se eu fizer como no código acima, o resultado é -2,9103830456734e-011 ao invés de 0.

E se formatar para número, o resultado no objeto de texto fica -0.


Obs: Os campos vem de várias tabelas, por isso não fiz a soma no QVD.


Como posso fazer este cálculo?


Obrigado.

Labels (1)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Veja se atende:

round(

    sum(Campo1) + sum(Campo 2) + sum(Campo 3)

    - sum(CampoA) - sum(Campo B) - sum(Campo C) 

,0.01)

Obs.:

round(x [ , passo [ , deslocamento ]])

    Arredondamento de x para cima ou para baixo n número de etapas com um deslocamento de offset. O resultado é um número. Se x estiver exatamente no meio de um intervalo, será arredondado para cima. A função está em conformidade com os números de ponto flutuante de 64 bits de padrão IEEE.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

2 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Veja se atende:

round(

    sum(Campo1) + sum(Campo 2) + sum(Campo 3)

    - sum(CampoA) - sum(Campo B) - sum(Campo C) 

,0.01)

Obs.:

round(x [ , passo [ , deslocamento ]])

    Arredondamento de x para cima ou para baixo n número de etapas com um deslocamento de offset. O resultado é um número. Se x estiver exatamente no meio de um intervalo, será arredondado para cima. A função está em conformidade com os números de ponto flutuante de 64 bits de padrão IEEE.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
dairan73
Contributor III
Contributor III
Author

Obrigado, funcionou.