Não tem como vc postar sua sentença sql detalhada??

Ainda não vi problema, SUM E GROUP BY?? Não vejo problema mesmo.


2009/4/8 sergio santos <sergio.serginhos...@gmail.com>

> Olá Nilson
>
> Além do ROUND eu andia faço um SUM e acrescento um GROUP BY no final... por
> isso não posso fazer dessa forma.
>
> sobre o que o Luigi falou eu já tentei fazer assim usando a mesma
> metodologia nas duas consultas.. só que quando o valor muda, segue outro
> exemplo, dá tudo errado de novo:
>
> vejam:
> liquido = 115.71;
> valor_comissao = 0.5;
> valor_comissao_receber = 1;
> numparc = 7;
> numparc_pg = 1;
>
> no PHP
> echo
> round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2);
> vai retornar 8.26
>
> já no SQL
> (ROUND((((valor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numparc_pg),2))
>
> vai retornar 8.27
>
> obrigado pessoal
>
> 2009/4/8 Nilson Chagas <nilson.chagas.si...@gmail.com>
>
> Pq  vc já não faz as contas toda na própria sentença?? Mesmo a detalhada.
>>
>>
>> 2009/4/8 sergio santos <sergio.serginhos...@gmail.com>
>>
>>> Entendi...
>>> mais o meu problema continua
>>> rs
>>>
>>> eu tenho dois relatórios que buscam os mesmos valores no banco de
>>> dados...
>>> só que um é todo detalhado, por isso prociso fazer as contas em PHP, já o
>>> outro é todo sumarizado e então eu faço as contas na própria SQL.
>>>
>>> logo eu tenho os seguintes valores no banco de dados:
>>> liquido = 167.69;
>>> valor_comissao = 0.5;
>>> valor_comissao_receber = 1;
>>> numparc = 10;
>>> numparc_pg = 1;
>>>
>>> em PHP eu faço as contas assim:
>>> $a = round($liquido*$valor_comissao,2);
>>> $b = round($a*$valor_comissao_receber,2);
>>> $c = round($b/$numparc,2);
>>> $d = round($c*$numparc_pg,2);
>>> echo round($d,2);
>>>
>>> vai retornar 8.39
>>>
>>> no SQL eu faço as contas assim:
>>> SELECT
>>> (ROUND((((valor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numparc_pg),2))
>>> FROM ...
>>>
>>> vai retornar 8.38
>>>
>>> já tentei fazer um monte de coisas e tudo tá dando errado...
>>> alguém tem alguma idéia pra poder me ajudar.
>>>
>>> abraços
>>>
>>>
>>> 2009/4/8 Luigi Castro Cardeles <luigi.carde...@gmail.com>
>>>
>>> Sim e não :)
>>>>
>>>> Se você está trabalhando com matemática de ponto flutuante esse é um
>>>> resultado possível.
>>>>
>>>> Arredondando somente no fim:
>>>>
>>>> 2,34 * 8,67 = 20,2878 ~ 20,29
>>>>
>>>> se você arredondar individualmente:
>>>>
>>>> 2,34 ~ 2,3
>>>> 8,67 ~ 8,7
>>>>
>>>> 2,3 * 8,7 = 20,01
>>>>
>>>> []'s
>>>>
>>>> Luigi Castro Cardeles
>>>>
>>>>
>>>> 2009/4/8 sergio santos <sergio.serginhos...@gmail.com>
>>>>
>>>> Pessoal
>>>>> vejam bem
>>>>>
>>>>> essas são minhas variáveis:
>>>>>
>>>>>     $liquido = 115.71;
>>>>>     $valor_comissao = 0.5;
>>>>>     $valor_comissao_receber = 1;
>>>>>     $numparc = 7;
>>>>>     $numparc_pg = 1;
>>>>>
>>>>>     Quando eu faço assim:
>>>>>
>>>>> round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2);
>>>>>     o resultaod é 8.26 ou seja, diferente do arredondamento no
>>>>> PostgreSQL
>>>>>
>>>>>     já quando eu faço passo a passo, ele me retorna o mesmo valor que o
>>>>> PostgreSQL está retornando
>>>>>
>>>>>     $a = round($liquido*$valor_comissao,2);
>>>>>     $b = round($a*$valor_comissao_receber,2);
>>>>>     $c = round($b/$numparc,2);
>>>>>     $d = round($c*$numparc_pg,2);
>>>>>     echo round($d,2);
>>>>>
>>>>> estranho....
>>>>>
>>>>>  2009/4/8 Osvaldo Kussama <osvaldo.kuss...@gmail.com>
>>>>>
>>>>> Em 08/04/09, Osvaldo Kussama<osvaldo.kuss...@gmail.com> escreveu:
>>>>>> > Em 08/04/09, sergio santos<sergio.serginhos...@gmail.com> escreveu:
>>>>>> >> Pessoal o arredondamento od PosgreSQL funciona assim:
>>>>>> >> 8.265 = 2.27
>>>>>> >>
>>>>>> >> e o do PHP é assim:
>>>>>> >> 8.265 = 2.26
>>>>>> >>
>>>>>> >> tem uma forma de eu forçar o PosgreSQL a arredondar igual ao PHP?
>>>>>> >>
>>>>>> >
>>>>>> >
>>>>>> > Em primeiro lugar eu duvido que tanto o PostgreSQL quanto o PHP
>>>>>> façam
>>>>>> > o arredondamento acima descrito.
>>>>>> > Agora se você estiver falando de 8.265 = 8.26, bem isto é o que se
>>>>>> > espera, matematicamente falando.
>>>>>>
>>>>>> Ooops!
>>>>>> Queria dizer na frase acima:
>>>>>> 8.265 = 8.27
>>>>>>
>>>>>>
>>>>>> >
>>>>>> > Creio que o PHP também não faz da forma como você descreveu, veja o
>>>>>> > manua (particularmente os 2 últimos exemplos)l:
>>>>>> > <?php
>>>>>> > echo round(3.4);         // 3
>>>>>> > echo round(3.5);         // 4
>>>>>> > echo round(3.6);         // 4
>>>>>> > echo round(3.6, 0);      // 4
>>>>>> > echo round(1.95583, 2);  // 1.96
>>>>>> > echo round(1241757, -3); // 1242000
>>>>>> > echo round(5.045, 2);    // 5.05
>>>>>> > echo round(5.055, 2);    // 5.06
>>>>>> > ?>
>>>>>> > http://br.php.net/round
>>>>>> >
>>>>>> > Mas você sempre pode criar sua própria função de arredondamento.
>>>>>> >
>>>>>> > Osvaldo
>>>>>> >
>>>>>> _______________________________________________
>>>>>> pgbr-geral mailing list
>>>>>> pgbr-geral@listas.postgresql.org.br
>>>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sérgio Antônio dos Santos
>>>>> Bacharel em Sistemas de Informação
>>>>> (31) 8573-7004
>>>>>
>>>>> _______________________________________________
>>>>> pgbr-geral mailing list
>>>>> pgbr-geral@listas.postgresql.org.br
>>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> pgbr-geral mailing list
>>>> pgbr-geral@listas.postgresql.org.br
>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>
>>>>
>>>
>>>
>>> --
>>> Sérgio Antônio dos Santos
>>> Bacharel em Sistemas de Informação
>>> (31) 8573-7004
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> pgbr-geral@listas.postgresql.org.br
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>>
>> --
>> []s
>> Nilson Chagas - Ubuntu User 25794
>> ---
>> Visite:
>> http://www.amados.com.br/podcast -> Peça gratuitamente um curso Bíblico
>> http://tempodesalvacao.blogspot.com/
>> http://bbnradio.org/ -> Ouça a rádio e faça gratuitamente um Curso
>> Biblico
>>
>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> Sérgio Antônio dos Santos
> Bacharel em Sistemas de Informação
> (31) 8573-7004
>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast -> Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ -> Ouça a rádio e faça gratuitamente um Curso Biblico
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a