Sr,s bom dia, È possível em um mesmo select ter dois DISTINCT ?
Att Mauricio -----Mensagem original----- De: [email protected] [mailto:[email protected]] Em nome de [email protected] Enviada em: quarta-feira, 8 de abril de 2009 17:49 Para: [email protected] Assunto: Digest pgbr-geral, volume 26, assunto 26 Send pgbr-geral mailing list submissions to [email protected] To subscribe or unsubscribe via the World Wide Web, visit https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral or, via email, send a message with subject or body 'help' to [email protected] You can reach the person managing the list at [email protected] When replying, please edit your Subject line so it is more specific than "Re: Contents of pgbr-geral digest..." Tópicos de Hoje: 1. Re: Arredondamento pg <> do PHP (PAULO) 2. Re: Arredondamento pg <> do PHP (sergio santos) ---------------------------------------------------------------------- Message: 1 Date: Wed, 8 Apr 2009 16:59:01 -0300 From: "PAULO" <[email protected]> Subject: Re: [pgbr-geral] Arredondamento pg <> do PHP To: "Comunidade PostgreSQL Brasileira" <[email protected]> Message-ID: <1a157b0a09b1442b89f01fff476ab...@shalom> Content-Type: text/plain; charset="iso-8859-1" Eu utilizo funções: Tente: //arredondado (8.56,2); function arredondar_dois_decimal($valor) { $float_arredondar=round($valor * 100) / 100; return $float_arredondado; } //Funcao function arredondado ($numero, $decimais) { $fator = pow(10, $decimais); return (round($numero*$fator)/$fator); } Atts, Paulo. VisualP Sistemas. ----- Original Message ----- From: sergio santos To: Comunidade PostgreSQL Brasileira Sent: Wednesday, April 08, 2009 3:47 PM Subject: Re: [pgbr-geral] Arredondamento pg <> do PHP 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)*nump arc_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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Em 08/04/09, Osvaldo Kussama<[email protected]> escreveu: > Em 08/04/09, sergio santos<[email protected]> 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 [email protected] 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 [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _______________________________________________ pgbr-geral mailing list [email protected] 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 ---------------------------------------------------------------------------- -- E-mail verificado pelo Terra Anti-Spam. Para classificar esta mensagem como spam ou não spam, clique aqui. Verifique periodicamente a pasta Spam para garantir que apenas mensagens indesejadas sejam classificadas como Spam. ---------------------------------------------------------------------------- -- _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ---------------------------------------------------------------------------- -- Nenhum vírus encontrado nessa mensagem recebida. Verificado por AVG - www.avgbrasil.com.br Versão: 8.5.285 / Banco de dados de vírus: 270.11.47/2047 - Data de Lançamento: 04/08/09 05:53:00 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20090408/67 59d39e/attachment-0001.htm ------------------------------ Message: 2 Date: Wed, 8 Apr 2009 17:46:47 -0300 From: sergio santos <[email protected]> Subject: Re: [pgbr-geral] Arredondamento pg <> do PHP To: Comunidade PostgreSQL Brasileira <[email protected]> Message-ID: <[email protected]> Content-Type: text/plain; charset="iso-8859-1" Ola pessoal usei a ideia do Paulo e fiz uma adaptação. Na verdade eu modifiquei a função dele para fazer um truncation com a função ceil do PHP fiz a mesma coisa no SQL e PIMBAAAAAAAAAAAAAAAAAAAAAAAAA funcionu vejam a função: function arredondar_dois_decimal($valor) { $float_arredondar=ceil($valor*100)/100; return $float_arredondar; } já no SQL fiz assim: (CEIL((((valor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numpa rc_pg)*100)/100) abraços e obrigado a todos 2009/4/8 PAULO <[email protected]> > Eu utilizo funções: > Tente: > > //arredondado (8.56,2); > function arredondar_dois_decimal($valor) { > $float_arredondar=round($valor * 100) / 100; > return $float_arredondado; > } > //Funcao > function arredondado ($numero, $decimais) { > $fator = pow(10, $decimais); > return (round($numero*$fator)/$fator); > } > > Atts, > Paulo. > VisualP Sistemas. > > > > ----- Original Message ----- > *From:* sergio santos <[email protected]> > *To:* Comunidade PostgreSQL Brasileira<[email protected]> > *Sent:* Wednesday, April 08, 2009 3:47 PM > *Subject:* Re: [pgbr-geral] Arredondamento pg <> do PHP > > 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)*nump arc_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 <[email protected]> > >> 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 <[email protected]> >> >> 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 <[email protected]> >>> >>> Em 08/04/09, Osvaldo Kussama<[email protected]> escreveu: >>>> > Em 08/04/09, sergio santos<[email protected]> 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 >>>> [email protected] >>>> 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 >>> [email protected] >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >>> >> >> _______________________________________________ >> pgbr-geral mailing list >> [email protected] >> 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 > > ------------------------------ > E-mail verificado pelo Terra Anti-Spam. > Para classificar esta mensagem como spam ou não spam, clique aqui<http://mail.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCYyMjgyNDU3I3Blcm0 hdGVycmEmMSwxMjM5MjE2NTAxLjE4MjQwNS4xMDA4MS50YWNhbWFjYS5oc3QudGVycmEuY29tLmJ yLDE0Nzg0TerraMail> > . > Verifique periodicamente a pasta Spam para garantir que apenas mensagens > indesejadas sejam classificadas como Spam. > > ------------------------------ > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > ------------------------------ > > > Nenhum vírus encontrado nessa mensagem recebida. > Verificado por AVG - www.avgbrasil.com.br > Versão: 8.5.285 / Banco de dados de vírus: 270.11.47/2047 - Data de > Lançamento: 04/08/09 05:53:00 > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > 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 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20090408/3d 37a8ca/attachment.htm ------------------------------ _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Fim da Digest pgbr-geral, volume 26, assunto 26 *********************************************** _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
