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

Responder a