Bruno Rolim Mansur escreveu:
> A consulta é a seguinte:
> 
> select
>  al.lot_date,
>  ct.name,
>  sum(cd.value) as credito,
>  sum(db.value) as debito,
>  sum(cd.value) - sum(db.value) as saldo
> from
>  accounting_lot al
>  inner join account_cast ac ON ac.id_accounting_lot = al.id_accounting_lot
>  inner join (select id_account_cast, id_cast_nature, sum(value) as value
>       from account_cast_account
>       group by id_account_cast, id_cast_nature) cd ON cd.id_account_cast = 
> ac.id_account_cast AND cd.id_cast_nature = 1
>  inner join (select id_account_cast, id_cast_nature, sum(value) as value
>       from account_cast_account
>       group by id_account_cast, id_cast_nature) db ON db.id_account_cast = 
> ac.id_account_cast AND db.id_cast_nature = 2
>  inner join cast_type ct ON ct.id_cast_type = al.id_cast_type
> group by
>  al.id_accounting_lot,
>  al.lot_date,
>  ct.name
> having sum(cd.value) <> sum(db.value)
> order by al.lot_date, ct.name
> 
> 
> ----- Original Message ----- 
> From: "Euler Taveira de Oliveira" <[EMAIL PROTECTED]>
> To: "Grupo de Usuários do PostgreSQL no Brasil" 
> <[email protected]>
> Cc: <[EMAIL PROTECTED]>
> Sent: Wednesday, August 23, 2006 9:13 PM
> Subject: Re: [PostgreSQL-Brasil] Problema quando uso having p/ verificar 
> diferença entre números
> 
> 
>> Bruno Rolim Mansur escreveu:
>>
>>> Ao utilizar uma query, tô precisando saber, dentro da clausula having, se 
>>> a soma de uma coluna é diferente da soma da outra, desse jeito:
>>>
>>> having sum(coluna1) <> sum(coluna2)
>>>
>>> Mas a minha query retorna mesmo quem é igual, por exemplo: duas com 
>>> valores 0.05 estão sendo retornados no meu select e quando faço a 
>>> diferença entre os dois dá um número muito pequeno.
>>>
>>> Alguém sabe como posso solucionar o problema?
>>>
>> Poderias postar a consulta bem como o modelo das tabelas envolvidas? É
>> difícil tirar alguma conclusão com poucos dados.
>>
>>
>> -- 
>>  Euler Taveira de Oliveira
>>  http://www.timbira.com/


Qual o tipo de seus campos?
Parece ser o problema de aritmética de ponto flutuante que você não 
encontra em campos do tipo NUMERIC.
Siga a sugestão do manual:
"If you require exact storage and calculations (such as for monetary 
amounts), use the numeric type instead."
http://www.postgresql.org/docs/8.1/interactive/datatype.html#DATATYPE-FLOAT

[]s
Osvaldo

                
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/ 
 

_______________________________________________
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

Responder a