Fórum sum em sql #468244

28/01/2014

0

boa noite.

preciso nessa view retornar o percentual de uma determinada consulta:

CREATE VIEW VW_PROD_PEDIDO(
PEDV,
DATA_OPERACAO,
NOME_CLI,
CIDADE,
UF_CLI,
COD_PROD,
DESC_PROD,
idcarga,
VENDIDO,
SEPARADO,
PERCENTUAL)
AS
select p.pedv,p.data_operacao,p.nome_cli,p.cidade,p.uf_cli,ip.cod_prod,ip.desc_prod,ic.id_carga,
sum(coalesce(ip.qtde_vendido,0)) as vendido,
sum(coalesce(ip.qtde_separado,0)) as separado,
sum(coalesce(ip.qtde_separado,0)) / sum(coalesce(ip.qtde_vendido,0)) * 100 AS Percentual -------> erro aqui

from pedido p
inner join item_pedido ip on(ip.pedv = p.pedv)
inner join item_carga ic on(ic.id_pedido = p.pedv)

group by
p.pedv,p.data_operacao,p.nome_cli,p.cidade,p.uf_cli,ip.cod_prod,ip.desc_prod,ic.id_carga

no ultimo sum tenho que pegar o % de cada item separado, só que quando estiver qtde_vendido = 0 e qtde_separado = 0 recebo o erro :
arithmetic overflow or divison by zero has occurred com certeza sei que não posso dividir 0 por 0.

mas como posso contornar esse problema?

grato:
Jose Luiz
Jose Medeiros

Jose Medeiros

Responder

Posts

29/01/2014

Leandro Chiodini

Bom dia,
Voce consegue matar isso ai usado a clausula Case
para caso = 0 nao executar o calculo.

dar uma olhada em

https://www.devmedia.com.br/o-case-do-firebird/1489
Responder

Gostei + 0

29/01/2014

Thiago Irrazabal

Boa tarde, usando um HAVING não resolve teu caso? abraço.


Att,
Thiago Irrazabal de Oliveira.
Responder

Gostei + 0

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

Aceitar