Sum e Coalesce

29/07/2019

0

Eu preciso somar 3 campos de uma tabela ao mesmo tempo q uso coalesce neles para formata-los, pois alguns tem registros nulos. Porem não estou conseguindo somar os 3 campos para trazer o total de impostos.

select
CP.CODIGO,
CP.QUANTIDADE,
coalesce(CP.VALOR_ICMS, 0),
coalesce(CP.VALOR_PIS, 0),
coalesce(CP.VALOR_COFINS, 0),
sum(CP.VALOR_ICMS + CP.VALOR_PIS + CP.VALOR_COFINS) as TOTAL_IMPOSTOS
from VEN_SAIDAS_PRODUTOS CP
Matheus Luis

Matheus Luis

Responder

Post mais votado

29/07/2019

acredito que da forma que você apresentou, não seja utilizada a função SUM(). basta somar os campos:
select
	CP.CODIGO,
	CP.QUANTIDADE,
	coalesce(CP.VALOR_ICMS, 0),
	coalesce(CP.VALOR_PIS, 0),
	coalesce(CP.VALOR_COFINS, 0),
	coalesce(CP.VALOR_ICMS, 0) + coalesce(CP.VALOR_PIS, 0) + coalesce(CP.VALOR_COFINS, 0) as TOTAL_IMPOSTOS
from
	VEN_SAIDAS_PRODUTOS CP

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

29/07/2019

Matheus Luis

acredito que da forma que você apresentou, não seja utilizada a função SUM(). basta somar os campos:
select
	CP.CODIGO,
	CP.QUANTIDADE,
	coalesce(CP.VALOR_ICMS, 0),
	coalesce(CP.VALOR_PIS, 0),
	coalesce(CP.VALOR_COFINS, 0),
	coalesce(CP.VALOR_ICMS, 0) + coalesce(CP.VALOR_PIS, 0) + coalesce(CP.VALOR_COFINS, 0) as TOTAL_IMPOSTOS
from
	VEN_SAIDAS_PRODUTOS CP



Eu consegui dessa forma:
select
CP.CODIGO,
CP.QUANTIDADE,
coalesce(CP.VALOR_ICMS, 0),
coalesce(CP.VALOR_PIS, 0),
coalesce(CP.VALOR_COFINS, 0) as,
sum(coalesce(CP.VALOR_ICMS, 0) + --
coalesce(CP.VALOR_PIS, 0) + --
coalesce(CP.VALOR_COFINS, 0)) as TOTAL_IMPOSTOS
from VEN_SAIDAS_PRODUTOS CP
group by 1, 2, 3, 4, 5
Responder

30/07/2019

Emerson Nascimento

porque o group by ????
Responder

30/07/2019

Matheus Luis

porque o group by ????

Para agrupar o resultado do sum e dos coalesce, sem eles da erro. Acredito que seja sintaxe e logica da linguagem.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar