[firebase-br] Consulta SQL Parte 2
Murilo
murilo em conchalnet.com.br
Ter Out 9 10:29:48 -03 2007
Fiz meu SQL da seguinte forma:
SELECT
Vendas.Codigo,
Vendas.Data,
Vendas.CodClie,
SUM( Itens.Quantidade * Itens.PrecoVenda ) AS TotVenda,
SUM( Itens.Quantidade * Itens.PrecoCusto ) AS TotCusto,
SUM( Extras.Valor ) AS TotCustoExtra
FROM Vendas INNER JOIN Itens ON Vendas.Codigo = Itens.CodVenda INNER
JOIN Extras ON Vendas.Codigo = Extras.CodVenda
GROUP BY Vendas.Codigo, Vendas.Data, Vendas.CodClie
ORDER BY Vendas.Codigo
Meu problema é o seguinte:
Se a tabela de CUSTOS EXTRAS tiver 10 registros, os resultados das somas
são multiplicados por 10. Por exemplo, se o resultado correto da soma do
campo TotVenda seria 100,00, esta instrução SQL acima retorna para mim
R$1.000,00 caso existam 10 registros na tabela de CUSTOS EXTRAS. O mesmo
ocorre com a soma do campo TotCusto.
Já tentei de tudo, mas não obtive nenhum sucesso. Ao meu entender este
select não deveria ter este comportamento, que está errado, pois estou
agrupando ele
Sei que alguém vai perguntar: "Porque uma chave estrangeira na tabela de
Custos Extras apontando para a tabela de Itens?" - Resposta: É para a
manutenção desta tabela, pois sempre que um item é adicionado na tabela
de itens um Trigger gera os custo extras de cada item. Também poderei
utilizar este campo para a emissão de um relatório agrupado por produto.
será que poderia ser algum BUG? não consegui enteder o porque retornaria
dessa forma....
[]'s
Agradeço atencipadamente a ajuda de todos.
Murilo ABCS Informática/Conchalnet
Rua das Angélicas, 622 - Centro
Conchal/SP - CEP 13835-000
<http://www.abcsinformatica.com.br> www.abcsinformatica.com.br
www.conchalnet.com.br
Mais detalhes sobre a lista de discussão lista