Olá Saulo,
neste caso você pode fazer um group by pelo campo numero que deve resolver. Algo como isso:

Select  borderô.parcela.numero
        sum(parcela.valor) as valor,
sum(borderô.comissao) as comissão from borderô inner join parcelas on borderô.numero = parcela.numero
group by borderô.numero
order by 1


Att.
Alexsandro Haag




Saulo Morais Lara wrote:
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.


-----Mensagem original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Em nome de Osvaldo
Kussama
Enviada em: sexta-feira, 23 de maio de 2008 13:04
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] RES: RES: RES: RES: Ajuda em Select

2008/5/23 Osvaldo Rosario Kussama <[EMAIL PROTECTED]>:
Saulo Morais Lara escreveu:
Sim

-----Mensagem original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Em nome de Leandro
DUTRA
Enviada em: quarta-feira, 21 de maio de 2008 17:49
Para: Comunidade PostgreSQL Brasileira
Assunto: Re: [pgbr-geral] RES: RES: RES: Ajuda em Select

2008/5/21 Saulo Morais Lara <[EMAIL PROTECTED]>:
Vamos ver se explico melhor. Esta consulta pegará a ultima compra de
cada
cliente, e de qto em qto tempo ele compra, a partir da data do pedido.
Por exemplo, 1 cliente tem 2 pedidos, um com data de 10/05/2008 e outro
com
20/05/2008. O prazo de uma compra pra outra foi de 10 dias.
Entao saira: Cliente: Fulano, Ultima compra: 20/05/2008, Frequencia: 10
Você quer uma média?

Isto está com cara dever de casa mas vamos lá:

-- Média de dias entre pedidos
SELECT p3.pedclicod, AVG(p3.dias)
 FROM (SELECT p1.pedclicod, (p1.pddata - MAX(p2.peddata)) AS dias
         FROM pedidos p1 JOIN pedidos p2 ON (p1.pedclicod = p2.pedclicod
AND
p1.peddata > p2.peddata)
         GROUP BY p1.pedclicod) p3
 GROUP BY p3.pedclicod
 ORDER BY p3.pedclicod;

Você tem que prestar atenção em duas condições de contorno que não entram
no
cálculo da média acima:

-- Clientes sem pedidos registrados
SELECT clicod, clinome
 FROM cliente LEFT OUTER JOIN pedidos
      ON (clicod = pedclicod)
 WHERE pedclicod IS NULL;


-- Clientes com um único pedido registrado
SELECT clicod, clinome
 FROM cliente JOIN pedidos
      ON (clicod = pedclicod)
 GROUP BY clicod, clinome
 HAVING count(*) = 1
 ORDER BY clicod;

Osvaldo




Só mais um detalhe:
Se você tiver mais de um pedido no mesmo dia sua média estará deturpada.
Neste caso você pode criar uma numeração auxiliar (por ex. uma
sequência) e utilizá-la para pegar o próximo pedido.

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

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

Reply via email to