Fórum Substituir 0 por 1 no select #41719
23/01/2004
0
O problema é quando o estoque é 0, aí acontece o erro na 4ª linha.
Uso D7, IBX e FB1.5
select G.CODIGO, G.DESCRICAO, G.UNIDADE,
sum(I.CUSTO * I.ESTOQUE) as TOTAL,
sum(I.ESTOQUE) as ESTOQUE,
(sum(I.CUSTO * I.ESTOQUE) / sum(I.ESTOQUE)) as CUSTO
from GRUPOMATERIA G
join MATERIA M on G.codigo = M.codgrupomat
join MATERIAITENS I on M.codigo
Lucianoko
Curtir tópico
+ 0Posts
23/01/2004
Aroldo Zanela
Coloca o script completo pra gente avaliar melhor. Não conheço o FB com profundidade, mas vejo uma solução usando WHERE ou HAVING.
Gostei + 0
26/01/2004
Lucianoko
select codigo, nome, (salario / dias) from cliente
Quando dias for 0 (zero) gostaria que fosse substituido por 1 para não dar erro de divisão por zero.
O código acima é apenas um exemplo, o verdadeiro é o primeiro do tópico.
Se os dias fosse Null, eu poderia usar coalesce, mas não é o que preciso.
Se puderem me ajudar, blz.
t+
Gostei + 0
26/01/2004
Afarias
|Quando dias for 0 (zero) gostaria que fosse substituido por 1 para não
|dar erro de divisão por zero.
mas o resultado para mim tb não parece lógico
|Se os dias fosse Null, eu poderia usar coalesce, mas não é o que
|preciso.
use um CASE -- já q vc está com FB 1.5, tipo
select codigo, nome, case when (dias = 0) then 0 else (salario / dias) end from cliente
outra forma seria usando Stored Procs com tratamento de erros...
T+
Gostei + 0
26/01/2004
Lucianoko
É isso que eu queria, só que deu erro no select abaixo.
Sem o Case dá erro de divisão por zero, com o Case dá o seguinte erro:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 8, char 1.
from.
select G.CODIGO, G.DESCRICAO, G.UNIDADE,
sum(I.CUSTO * I.ESTOQUE) as TOTAL,
sum(I.ESTOQUE) as ESTOQUE,
[b:9f97def6bf]CASE WHEN (sum(I.ESTOQUE) = 0) THEN
(sum(I.CUSTO * I.ESTOQUE) / sum(I.ESTOQUE))
ELSE
(sum(I.CUSTO * I.ESTOQUE))[/b:9f97def6bf]
from GRUPOMATERIA G
join MATERIA M on G.codigo = M.codgrupomat
join MATERIAITENS I on M.codigo = I.codmat
group by G.CODIGO, G.DESCRICAO, G.UNIDADE
Gostei + 0
26/01/2004
Afarias
T+
Gostei + 0
27/01/2004
Lucianoko
t+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)