[firebase-br] Ajuda com SQL!

Kleber Caneva kdcc em terra.com.br
Qua Jan 9 12:21:31 -03 2008


Tenta assim:

SELECT
    Case WHEN (p.EXCEDIDOS = 0)
        THEN NULL
        ELSE SUM(CASE WHEN P.EXCEDIDO > 0 THEN 1 ELSE 0 END) / 
SUM(EXCEDIDOS)
   End
FROM PROCESSADOS

[]´s

Kléber Caneva


----- Original Message ----- 
From: "Roger" <pikurim em hotmail.com>
To: <lista em firebase.com.br>
Sent: Wednesday, January 09, 2008 9:42 AM
Subject: Re: [firebase-br] Ajuda com SQL!


Valeu, pelas respostas, vcs respondem muito rápido, eu usava outro
banco de dados o DBISam (ElevateSoftware.com.br) mas agora
os sistemas da empresa que trabalho exigem um banco mais robusto.

A pergunta é a seguinte:

Tentei fazer uma divisão na SQL, ex:

SELECT SUM(CASE WHEN P.EXCEDIDO > 0 THEN 1 ELSE 0 END) / SUM(EXCEDIDOS)
FROM PROCESSADOS

porém às vezes a primeira parte da divisão retorna zero, então o Firebird
retorna um
erro de divisão por zero, mas o antigo banco de dados o DBISam, apenas
mostrava o
resultado da divisão como NULL, como faço para o resultado retornar NULL
nestes casos,
e se tem como fazer tratamentos de exceção diretamente em SQLs?

Obrigado!
Roger Oliveira
Underline Informática
www.puxtreme.com.br


"Roger" <pikurim em hotmail.com> escreveu na
notícia da mensagem:fm2c9d$4kv$1 em ger.gmane.org...
> Sou novo no grupo e estou com um problema em um SQL:
>
> A dúvida é: Por que o seguinte sql retorna um número inteiro se deveria
> ser um número decimal
>
> SELECT (SUM(EXCEDIDOS) / 60) MINUTOS FROM PROCESSADOS
>
> E como fazer ele retornar números como: 1,24?
>
>
>
> Outra dúvida só dá para usar Case na declaração de campos, exemplos:
>
> SELECT
> CASE WHEN COUNT(*) > 1 THEN COUNT(*) ELSE 0 END CICLOS
> FROM PROCESSADOS
>
> Não tem como usar IF também???
>
>
> Valeu!
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/cgi-bin/imail.cgi?+_u=kdcc&_l=1,1199883286.39921.23252.tacamaca.hst.terra.com.br,5423,Des15,Des15






Mais detalhes sobre a lista de discussão lista