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