Saulo Morais Lara escreveu:
> Osvaldo, arrumei um livro de BD e logo vou estar bem se deus quiser.
> Obrigado, vo testar.
> Vc pode me ajudar em mais uma coisa. Estou pelejando e não consegui.
> Tenho os seguintes dados:
> 
> bordero
> -------
> Numero: 001
> Valor: 100,00
> Comissao: 10,00
> 
> Parcelas
> --------
> Numero: 001
> Parcela: 1
> Valor: 50,00
> Numero: 001
> Parcela: 2
> Valor: 50,00
> 
> Se faço um select assim:
> Select sum(parcela.valor) as valor, sum(borderô.comissao) as comissão from
> borderô inner join parcelas on borderô.numero = parcela.numero
> Como tenho duas parcelas do borderô 1, vai me retornar o valor da comissão
> duplicado. Deu pra entender. Acho que vo precisar dum subselect.
> Pode me auxiliar? Obrigado.
> 


Realmente este não é o caso para se utilizar junção.
Como você mesmo já percebeu é o caso para se utilizar subselect.

Tente:
SELECT borderô.numero, borderô.comissao AS comissão, (SELECT 
sum(parcela.valor) AS valor FROM parcelas WHERE parcela.numero = 
borderô.numero) FROM borderô ORDER BY borderô.numero;

Veja "4.2.9. Scalar Subqueries" em:
http://www.postgresql.org/docs/current/interactive/sql-expressions.html#SQL-SYNTAX-SCALAR-SUBQUERIES

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

Responder a