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
