Tente isso:
SELECT round(SUM(cast(cast(replace(replace(COALESCE(Valor,0),'.',''),',','')
as text) as float)*1000))/100000 AS contestado,
round(SUM(cast(cast(replace(replace(COALESCE(Valor1,0),'.',''),',','')
as text) as float)*1000))/100000 AS contestante
FROM traf.con WHERE PERIODO = 200612 AND TP = 1,
Se o campo for NULL o Coalesce retorna 0, caso contrário retorno seu
próprio valor. É como um CASE só que mais rápido e especifico para NULL.
Att
Evandro
daniel mendes wrote:
Opa Osvaldo,
olha soh eu tentei fazer assim:
SELECT
round(SUM(cast(cast(replace(replace(Valor,'.',''),',','') as
> text) as float)*1000))/100000 AS contestado,
> round(SUM(cast(cast(replace(replace(Valor1,'.',''),',','') as
text) as
> float)*1000))/100000 AS contestante,
case
when ValorContestante='' then 0
end
soh que nao estah dando certo.Voce poderia dar um help?
Osvaldo Rosario Kussama <[EMAIL PROTECTED]>
escreveu:
daniel
mendes escreveu:
> Boa tarde,
>
> eu tenho uma consulta:
>
> SELECT round(SUM(cast(cast(replace(replace(Valor,'.',''),',','')
as
> text) as float)*1000))/100000 AS contestado,
> round(SUM(cast(cast(replace(replace(Valor1,'.',''),',','') as
text) as
> float)*1000))/100000 AS contestante
> FROM traf.con WHERE PERIODO = 200612 AND TP = 1,
> so que tah dando o seguinte erro: ERROR: invalid input syntax for
type
> double precision: "", eu reparei que o erro ocorre no segundo
campo da
> consulta.
>
Repare:
bdteste=# SELECT cast('' as float);
ERRO: sintaxe de entrada inválida para tipo double precision: ""
portanto é provável que para algum valor o resultado dos replaces seja
um string vazio. Talvez você deva considerar zero nestes casos.
Veja case:
http://www.postgresql.org/docs/8.2/interactive/functions-conditional.html#AEN13053
[]s
Osvaldo
_______________________________________________________
Yahoo! Mail - Sempre a melhor opção para você!
Experimente já e veja as novidades.
http://br.yahoo.com/mailbeta/tudonovo/
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios
|