Re: [pgbr-geral] Resultado de linhas em colunas

2009-04-08 Por tôpico Andre Fernandes
Bom dia,

dê uma olhada na função crosstab (
http://www.postgresql.org/docs/8.3/interactive/tablefunc.html), pode ser a
solução para o que desejas.

Atenciosamente,

2009/4/8 Marcelo Costa marcelojsco...@gmail.com

 Olá, bom dia

 Possuo uma tabela

 id ddd  telefone
 1  011  12343456
 2  011  34562783
 3  011  09773625

 Estou precisando que o resultado seja exibido assim:

 id dd1 telefone1   ddd2  telefone2   ddd3 telefone3 ...
 1  011 12343456  011   34562783  011   09773625

 Ou seja cada linha que pertença a um mesmo id precisa ser exibida como
 uma coluna

 O sono não está deixando as idéias fluirem...alguém tem uma dica  ?

 Valeu



 --
 Marcelo Costa
 www.marcelocosta.net
 -
 “Os muito poderosos e os muito estúpidos possuem uma coisa em comum.
 Ao invés de alterarem as suas visões para se ajustarem aos fatos do
 mundo, eles alteram os fatos para ajustá-los às suas visões.”,

 Doctor Who.
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
André de Camargo Fernandes
Cel: (11) 7421-1379
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Problemas ao iniciar PostgreSQL

2009-04-08 Por tôpico JotaComm
Olá,

De acordo com a mensagem informada o valor de work_mem está incorreto.

Na instalação original o valor tem que estar expresso:

#work_mem=1MB

Este parâmetro é configurado no postgresql.conf.

Se o valor estiver diferente coloque o valor padrão é tente iniciar o
serviço novamente.

2009/4/7 Lucas Souza lucassouzadav...@gmail.com



 2009/4/7 Rodrigo Aires rodrigoai...@terra.com.br

  Olá Lista,



 Estou com problema para inicializar o serviço do PostgreSQL 8.3.7. Acabei
 de instalar no Ferora 8 mas quando tento iniciar ocorre o erro



 invalid values for parameter work_mem: -D

 provavelmente o valor do parametro work_mem, no arquivo postgresql.conf
 é invalido

 substitua por outro valor, ou comente esta linha com # na frente, e tente
 iniciar novamente ,



 Tentei iniciar o serviço com as configurações padrões de instalação e
 também tentei incluir o parâmetro work_mem com um valor numérico  no
 postgresql.conf e nada.



 Alguém teria alguma sugestão?



 Desde já agradeço.





 -

 Rodrigo Aires

 Desenvolvedor Delphi e .NET

 Administrador de Banco de Dados



 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 --
 Lucas de Souza D'Ávila
 Graduando em Sistema de Informação - Escola Superior de Criciúma, ESUCRI
 (localizada em Criciuma, SC)
 CV Lattes: http://lattes.cnpq.br/9245658982061645

 Visite o blog http://merendas.blogspot.com/

 http://twitter.com/lucasdsd

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



[]s
-- 
JotaComm
http://jotacomm.wordpress.com
http://www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Resultado de linhas em colunas - RESOLVIDO

2009-04-08 Por tôpico Marcelo Costa
Respondendo minha dúvida
2009/4/8 Marcelo Costa marcelojsco...@gmail.com:
 Olá, bom dia

 Possuo uma tabela

 id ddd  telefone
 1  011  12343456
 2  011  34562783
 3  011  09773625

 Estou precisando que o resultado seja exibido assim:

 id dd1 telefone1   ddd2  telefone2   ddd3 telefone3 ...
 1  011 12343456  011   34562783  011   09773625

 Ou seja cada linha que pertença a um mesmo id precisa ser exibida como
 uma coluna


Utilizei a função crosstab:

http://www.postgresql.org/docs/current/static/tablefunc.html

crosstab vem nos contribs em tablefunc.

Resolveu meu problema direitinho

Nada como um bom café...

-- 
Marcelo Costa
www.marcelocosta.net
-
“Os muito poderosos e os muito estúpidos possuem uma coisa em comum.
Ao invés de alterarem as suas visões para se ajustarem aos fatos do
mundo, eles alteram os fatos para ajustá-los às suas visões.”,

Doctor Who.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Resultado de linhas em colunas

2009-04-08 Por tôpico Marcelo Costa
Olá, bom dia

Possuo uma tabela

id ddd  telefone
1  011  12343456
2  011  34562783
3  011  09773625

Estou precisando que o resultado seja exibido assim:

id dd1 telefone1   ddd2  telefone2   ddd3 telefone3 ...
1  011 12343456  011   34562783  011   09773625

Ou seja cada linha que pertença a um mesmo id precisa ser exibida como
uma coluna

O sono não está deixando as idéias fluirem...alguém tem uma dica  ?

Valeu



-- 
Marcelo Costa
www.marcelocosta.net
-
“Os muito poderosos e os muito estúpidos possuem uma coisa em comum.
Ao invés de alterarem as suas visões para se ajustarem aos fatos do
mundo, eles alteram os fatos para ajustá-los às suas visões.”,

Doctor Who.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] PQnotifies

2009-04-08 Por tôpico Marcelo Giovane
Olá pessoal, estou fazendo a integração e aplicativo ao Postgresql através da 
libpq.
Estou precisando obter o retorno de notify para tratamento.
A função abaixo, elaborada com o xharbour e compilada com o bcc deveria fazer 
isso.
Contudo, na execução em Windows, ela não retorna o membro relname da estrtutura 
e aborta a aplicação.
Se determino o retorno da estrutura notify ( hb_retc(notify) ), aparecem uns 
caracteres estranhos, de tamanho totalmente diferente do nome da notificação 
que deveria retornar.
O que PQnotfies retorna extamente.
Obrigado.

MarceloG


HB_FUNC (PQNOTIFIES)
{
   PGnotify *notify;
   PQconsumeInput (( PGconn * ) hb_parptr(1));
   notify = PQnotifies(( PGconn * ) hb_parptr(1));
   hb_retc(notify-relname);
   PQfreemem(notify);
}___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] RES: Digest pgbr-geral, volume 26, assunto 18 : Problemas para transferir bancos

2009-04-08 Por tôpico Mauricio De Biasi
Osvaldo, Desculpe esqueci de detalhar, para administrar os bancos uso o PG
Admin III um com uma conexão remota e o outro local. 

Para transferir de um para o outro executo a opção do pg Admin III: Copia
de segurança padrão e depois executo a opção Restaura que gera o código:

(pg_restore.exe -h localhost -p 5432 -U postgres -d radar -v C:\Documents
and Settings\mbiasi\Desktop\bancoradar.backup). 

Configurações de LC de um para o outro:

Local (Windows XP)

lc_collate;Portuguese_Brazil.1252
lc_ctype;Portuguese_Brazil.1252
lc_messages;Portuguese_Brazil
lc_monetary;Portuguese_Brazil
lc_numeric;Portuguese_Brazil
lc_time;Portuguese_Brazil

Remoto (Linux);

lc_collate;en_US.UTF-8
lc_ctype;en_US.UTF-8
lc_messages;pt_BR.UTF-8
lc_monetary;pt_BR.UTF-8
lc_numeric;pt_BR.UTF-8
lc_time;pt_BR.UTF-8

Abs

 

-Mensagem original-
De: pgbr-geral-boun...@listas.postgresql.org.br
[mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de
pgbr-geral-requ...@listas.postgresql.org.br
Enviada em: terça-feira, 7 de abril de 2009 15:52
Para: pgbr-geral@listas.postgresql.org.br
Assunto: Digest pgbr-geral, volume 26, assunto 18

Send pgbr-geral mailing list submissions to
pgbr-geral@listas.postgresql.org.br

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
pgbr-geral-requ...@listas.postgresql.org.br

You can reach the person managing the list at
pgbr-geral-ow...@listas.postgresql.org.br

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: Transações Concorrentes ou paralelas no PostgreSQL.
  (Euler Taveira de Oliveira)
   2. Re: Re plicação Multi master pglcuster - pgpool-II ou Outro
  (Euler Taveira de Oliveira)
   3. Re: Re  plicação Multi master pglcuster - pgpool-II ou Outro
  (charles andre)
   4. Re: Select que retorna o valor médio em um intervalo de tempo
  (Newton Teixeira do Nascimento Júnior)
   5. Problemas para transferir bancos (Mauricio De Biasi)
   6. Problemas ao iniciar PostgreSQL (Rodrigo Aires)
   7. Re: Problemas para transferir bancos (Euler Taveira de Oliveira)
   8. Re: Select que retorna o valor médio em um intervalo de tempo
  (Osvaldo Kussama)


--

Message: 1
Date: Tue, 07 Apr 2009 12:40:12 -0300
From: Euler Taveira de Oliveira eu...@timbira.com
Subject: Re: [pgbr-geral] Transações Concorrentes ou paralelas no
PostgreSQL.
To: Comunidade PostgreSQL Brasileira
pgbr-geral@listas.postgresql.org.br
Message-ID: 49db73dc.50...@timbira.com
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Adenilton B. da Silva escreveu:
 Gostaria de saber se é possível, no PostgreSQL, obter várias transações 
 concorrentes ou paralelas em uma mesma conexão, tal qual ocorre no 
 Interbase/Firebird.
 
O PostgreSQL não trabalha assim; uma transação por vez em cada conexão.

 Algo como obter a ID da transação em seu início em efetuar commit ou 
 rollback de acordo com esse ID, pois se executarmos duas vezes o comando 
 begin em determinada query/conexão no postgreSQL, na segunda execução é 
 retornado a mensagem WARNING:  there is already a transaction in
progress.
 
Não entendi qual o seu objetivo aqui... Acho que você está confundindo os 
conceitos; o PostgreSQL não paraleliza transações na mesma conexão.

 Quanto ao porque do questionamento está no fato de o PostgreSQL criar um 
 processo no servidor cada vez que um conexão/transação é aberta, gerando 
 um grande consumo de memória (ao meu ver sem necessidade).
 
Isso é uma questão de arquitetura. Não, o PostgreSQL *não* mudará isso. Se o

tempo de abertura de conexões é crítico para a sua aplicação, utilize um 
aglomerador (aka pool).


-- 
   Euler Taveira de Oliveira
   http://www.timbira.com/


--

Message: 2
Date: Tue, 07 Apr 2009 12:53:19 -0300
From: Euler Taveira de Oliveira eu...@timbira.com
Subject: Re: [pgbr-geral] Re plicação Multi master pglcuster -
pgpool-II ou Outro
To: Comunidade PostgreSQL Brasileira
pgbr-geral@listas.postgresql.org.br
Message-ID: 49db76ef.8040...@timbira.com
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

charles andre escreveu:
 Pelo que estudei o pgpool-II em caso de falha para sincronizar 
 o servidor que saiu do ar ele usa o PITR ou RSYNC e o pgcluster usa
 o RSYNC. Em uma base de dados muito grande em torno de 20 TB acho que
 essa sincronização não é viavel: o pitr varios arquivos a serem copiados,
 controle dos arquivos etc e o rsync trava o sistema de arquivos ppara 
 poder copiar os dados ? 
Mesmo em uma base de dados com dezenas de terabytes, o que você precisa é 
copiar somente os logs de transação (em sistemas de baixa alteração isso
pode 
ser poucos megabytes). O rsync trava o que?

 Ele não 

[pgbr-geral] Currval

2009-04-08 Por tôpico Alisson Viegas
Bom dia, pessoal.
Ao tentar buscar o valor corrente de uma sequência acontece o seguinte erro:
currval of sequence “ctrc_numero” is not yet defined in this session.
No pgAdmin funciona, mas na aplicação não.
O que fazer? Obrigado!

 

At.te,
Alisson Viegas
Acsiv Sistemas

 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Currval

2009-04-08 Por tôpico Osvaldo Kussama
2009/4/8 Alisson Viegas p...@acsiv.com.br:
 Bom dia, pessoal.
 Ao tentar buscar o valor corrente de uma sequência acontece o seguinte erro:
 currval of sequence “ctrc_numero” is not yet defined in this session.
 No pgAdmin funciona, mas na aplicação não.
 O que fazer? Obrigado!




De acordo com o manual [1] você só pode chamar a currval após um nextval.
(An error is reported if nextval has never been called for this
sequence in this session.)

[1] http://www.postgresql.org/docs/current/interactive/functions-sequence.html

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Currval

2009-04-08 Por tôpico ivo nascimento
oi,
essa mensagem que voce esta recebendo significa que a sequence nao foi
utilizada nenhuma vez ainda dentro da conexao(sua sessao) na qual voce esta
perguntando pelo valor corrente...
quando voce podera usar currval:
quando houver um insert na tabela que utiliza um serial e esse serial
estiver atrelado a essa sequence...
quando voce chamar explicitamente nextval...
quando um campo de uma tabela onde ocorrer um insert estiver definido como
por exemplo campo integer default nextval('nome_sequence').



2009/4/8 Osvaldo Kussama osvaldo.kuss...@gmail.com

 2009/4/8 Alisson Viegas p...@acsiv.com.br:
  Bom dia, pessoal.
  Ao tentar buscar o valor corrente de uma sequência acontece o seguinte
 erro:
  currval of sequence “ctrc_numero” is not yet defined in this session.
  No pgAdmin funciona, mas na aplicação não.
  O que fazer? Obrigado!
 
 


 De acordo com o manual [1] você só pode chamar a currval após um nextval.
 (An error is reported if nextval has never been called for this
 sequence in this session.)

 [1]
 http://www.postgresql.org/docs/current/interactive/functions-sequence.html

 Osvaldo
 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Ivo Nascimento - Iann
-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] RES: Currval

2009-04-08 Por tôpico Alisson Viegas
Entendido. Obrigado!

 

At.te,
Alisson Viegas
Acsiv Sistemas

 

De: pgbr-geral-boun...@listas.postgresql.org.br 
[mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de ivo nascimento
Enviada em: quarta-feira, 8 de abril de 2009 11:27
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] Currval

 

oi,
essa mensagem que voce esta recebendo significa que a sequence nao foi 
utilizada nenhuma vez ainda dentro da conexao(sua sessao) na qual voce esta 
perguntando pelo valor corrente...
quando voce podera usar currval:
quando houver um insert na tabela que utiliza um serial e esse serial estiver 
atrelado a essa sequence...
quando voce chamar explicitamente nextval...
quando um campo de uma tabela onde ocorrer um insert estiver definido como por 
exemplo campo integer default nextval('nome_sequence').




2009/4/8 Osvaldo Kussama osvaldo.kuss...@gmail.com

2009/4/8 Alisson Viegas p...@acsiv.com.br:

 Bom dia, pessoal.
 Ao tentar buscar o valor corrente de uma sequência acontece o seguinte erro:
 currval of sequence “ctrc_numero” is not yet defined in this session.
 No pgAdmin funciona, mas na aplicação não.
 O que fazer? Obrigado!





De acordo com o manual [1] você só pode chamar a currval após um nextval.
(An error is reported if nextval has never been called for this
sequence in this session.)

[1] http://www.postgresql.org/docs/current/interactive/functions-sequence.html

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




-- 
Ivo Nascimento - Iann
-
|   twitter: ivonascimento . |
|   http://ianntech.com.br.  |
|   ZCE ID 227463685|
-

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico sergio santos
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?

abraços

-- 
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


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico Armando Roque
Sergio,

Duas situações distintas.

Arredondamento e truncar, no PG está arredondado, já no PHP está truncando.

Arredondar é aumentar ou diminuir o valor, dada a sua necessidade ou
definido pelo programa.
Truncar é cortar/retirar o número x de casas que não se deseja (ou
cortar/retirar até a parte desejada).

É indicado vc fazer o tratamento através de programação (aka PHP) e
depois executar o procedimento.

Abraços.

2009/4/8 sergio santos sergio.serginhos...@gmail.com:
 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?

 abraços

 --
 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





-- 
Armando Roque
http://www.linkedin.com/in/armandoroque
http://dropsdef.blogspot.com
http://del.icio.us/dropsdef
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico Osvaldo Kussama
Em 08/04/09, sergio santossergio.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.

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


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico Osvaldo Kussama
Em 08/04/09, Osvaldo Kussamaosvaldo.kuss...@gmail.com escreveu:
 Em 08/04/09, sergio santossergio.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


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico sergio santos
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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico Luigi Castro Cardeles
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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico sergio santos
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
(ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico Luigi Castro Cardeles
Olá,

Você tem que seguir a mesma metodologia em ambos: Ou você arrendonda o
resultado final (como você fez no banco) ou você arredonda por partes (como
você fez no PHP). O ideal é que você somente arredonde no fim de modo a
diminuir o erro em seus cálculos.

Luigi Castro Cardeles


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
 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico Nilson Chagas
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
 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico sergio santos
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
(ROUNDvalor_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
 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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 

Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico André Volpato
sergio santos escreveu:

 (...)
 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
   
r...@desenvolvimento:~# cat php.php

?php

$liquido = 115.71;

$valor_comissao = 0.5;

$valor_comissao_receber = 1;

$numparc = 7;

$numparc_pg = 1;

echo 
round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2);

echo \n\n;

?

r...@desenvolvimento:~# php php.php

8.27

r...@desenvolvimento:~# php -v

PHP 4.4.9 (cli) (built: Oct 30 2008 19:02:23)

-- 

[]´s, André Volpato


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico Nilson Chagas
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
 (ROUNDvalor_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
 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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
 

Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico PAULO
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 
(ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu:

 Em 08/04/09, sergio santossergio.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




Re: [pgbr-geral] Arredondamento pg do PHP

2009-04-08 Por tôpico sergio santos
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 PIMBA
funcionu

vejam a função:
function arredondar_dois_decimal($valor) {
   $float_arredondar=ceil($valor*100)/100;
   return $float_arredondar;
}

já no SQL fiz assim:
(CEILvalor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numparc_pg)*100)/100)

abraços e obrigado a todos

2009/4/8 PAULO p@terra.com.br

  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 sergio.serginhos...@gmail.com
 *To:* Comunidade PostgreSQL Brasileirapgbr-geral@listas.postgresql.org.br
 *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
 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu:
  Em 08/04/09, sergio santossergio.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