Será que funciona isso?

update tabela_pai set soma_valor_total = (
 select sum(valor_total)
 from tabela_filha tf
 where tf.protocolo = tabela_pai.protocolo
);

Caso contrário, dá pra tentar usando a cláusula UPDATE ... FROM:

update tabela_pai set soma_valor_total = a.soma
from (
 select protocolo, sum(valor_total) as soma
 from tabela_filha
 group by protocolo
) a
where a.protocolo = tabela_pai.protocolo;

E se ainda não der certo, dá pra recorrer a uma função em PL/pgSQL... :)

--
Rodrigo Hjort
http://icewall.org/~hjort


2006/12/11, Marcos Fabrício Corso <[EMAIL PROTECTED]>:

 No postgres tenho uma tabela_pai e numa outra tabela_filha, tenho varios
registros, relacionados com a tabela_pai, do tipo :

tabela_pai                 tabela_filha
protocolo                   protocolo     parcela          valor_total
121212                     121212          01                  150,00
                                    121212
02                   250,00
                                    121212         03
500,00
                                    121212         04
125,00


Na tabela_pai a primary_key eh "protocolo", na tabela_filha, eh
"protocolo" e "parcela" e tenho uma foregin_key da tabela_filha "protocolo"
com a tabela_pai "protocolo"

preciso fazer o seguinte :

* ler todos os registros da tabela_pai com protocolo igual a "121212"
* ler todos os registros da tabela_filha com protocolo igual a "121212"
* somar os valores do campo "valor_total" da tabela_filha numa variavel
numerica com 2 casas decimais e mover o esse valor para um campo na
tabela_pai

alguem pode me ajudar ???

uso o postgres 8.2 com pgadmin III

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a