[firebase-br] Dificuldade com union e group by

Wagner Porto wagner.porto em itelefonica.com.br
Sex Dez 14 12:26:52 -03 2007


Preciso de ajuda para realizar um busca com calculos de
qtd * valor em 3 tabelas diferentes, porém não estou conseguindo agrupar.

Ex.
select c.codigo, c.desc, sum(i.qtd * i.valor) as "valor"
from item i
join cliente c on c.codigo = i.codcli
group by 1,2
union
select c.codigo, c.desc, sum(s.qtd * s.valor) as "valor"
from item_servico s
join cliente c on c.codigo = s.codcli
group by 1,2
union
select c.codigo, c.desc, sum(e.qtd * e.valor) as "valor"
from item_escalonamento e
join cliente c on c.codigo = e.codcli
group by 1,2

essa consulta deveria ter o seguinte resultado

1  - cliente 0001 - 100,00
2  - cliente 0002 - 105,00
3  - cliente 0003 - 250,00

porém ela me retorna

1  - cliente 0001 - 40,00
1  - cliente 0001 - 60,00
2  - cliente 0002 - 10,00
2  - cliente 0002 - 95,00
3  - cliente 0003 - 250,00
3  - cliente 0003 - 50,00

se fizer com union all, aparece somente o ultimo registro de cada cliente

1  - cliente 0001 - 60,00
2  - cliente 0002 - 95,00
3  - cliente 0003 - 50,00

Desde já agradeço a atenção.





Mais detalhes sobre a lista de discussão lista