[firebase-br] Erro Cálculo da média
Siro
siro em protej.com.br
Qui Ago 5 08:59:46 -03 2010
Realmente, esta correto, da forma que vc fez, eu também testei aqui.
Mas veja a que estou fazendo:
SELECT count(i.valor_unitario),
AVG(I.VALOR_UNITARIO), sum(I.valor_unitario)
FROM ITENS_SAIDAS I
INNER JOIN SAIDAS_PRODUTOS S ON (S.ID = I.ID_SAIDA)
WHERE I.ID_PRODUTO = 10232 and S.DATA_SAIDA >= '03/09/2010'
GROUP BY I.VALOR_UNITARIO
retorna:
COUNT AVG SUM
1 3,8 3,8
3 4,8 14,4
8 5 40
Isto esta correto.. Agora
o mesmo sql sem o agrupamento retorna:
SELECT count(i.valor_unitario),
AVG(I.VALOR_UNITARIO), sum(I.valor_unitario)
FROM ITENS_SAIDAS I
INNER JOIN SAIDAS_PRODUTOS S ON (S.ID = I.ID_SAIDA)
WHERE I.ID_PRODUTO = 10232 and S.DATA_SAIDA >= '03/09/2010'
/***********************************/
--GROUP BY I.VALOR_UNITARIO
/***********************************/
retorna:
COUNT AVG SUM
12 4,85 58,2
Mostrando o valor minimo e máximo e retornou assim
SELECT count(i.valor_unitario),
AVG(I.VALOR_UNITARIO), min(I.valor_unitario), max(I.valor_unitario),
sum(I.valor_unitario)
FROM ITENS_SAIDAS I
INNER JOIN SAIDAS_PRODUTOS S ON (S.ID = I.ID_SAIDA)
WHERE I.ID_PRODUTO = 10232 and S.DATA_SAIDA >= '03/09/2010'
COUNT AVG MIN MAX SUM
12 4,85 3,8 5 58,2
Em 05/08/2010 07:51, Carlos H. Cantu escreveu:
> Fiz um teste aqui, criei uma tabela com um campo numeric 9,2, inseri
> os 3 valores que vc usou e mandei calcular a AVG, e retornou 4.53
>
> Firebird 2.1.3
>
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
>
> AB> eu vou tratar de fazer essa prova assim que chegar ao escritorio se detectar
> AB> que é de facto um bug eu mesmo reporto o bug aos developers
>
> AB> Andre
>
> AB> 2010/8/5 Siro<siro em protej.com.br>
>
>>> Olá André.
>>>
>>> Sim, já fiz teste com a versão 2.1 e ocorre o mesmo problema.
>>> Gostaria que mais alguém da lista também fizesse o teste para verificar,
>>> pois acho que já tentei de tudo para tentar descobrir se era um provável
>>> erro meu, mas não consegui detectar.
>>>
>>> Caso seja realmente um bug, peço para alguém informar, pois não tenho
>>> "inglês"
>>> .
>>>
>>>
>>> Em 04/08/2010 22:39, André Barros escreveu:
>>>
>>> De facto o select que fizeste está correcto y deveria retornar a media
>>>> correcta pelo que deverá ser de facto algun bug no fire ja experimentaste
>>>> com a versão anterior do 2.1.3
>>>>
>>>> Andre Barros
>>>>
>>>> 2010/8/4 Siro<siro em protej.com.br>
>>>>
>>>> Bom dia.
>>>>> Pessoal, será que estou ficando lélé ou há um bug do Firebird no cálculo
>>>>> da média (AVG)?
>>>>>
>>>>> *Firebird 2.1.3.18185 , Delphi 2010, Ibexpert
>>>>>
>>>>> O sql abaixo me retorna os seguintes resultados:
>>>>>
>>>>> SELECT I.ID_PRODUTO, P.DESCRICAO_DETALHADA,
>>>>> I.VALOR_UNITARIO
>>>>> FROM ITENS_SAIDAS I
>>>>> INNER JOIN SAIDAS_PRODUTOS S
>>>>> ON (I.ID_SAIDA=S.ID) AND (I.ID_EMPRESA=S.ID_EMPRESA)
>>>>> INNER JOIN PRODUTOS P
>>>>> ON (I.ID_PRODUTO=P.ID) AND (I.ID_EMPRESA=P.ID_EMPRESA)
>>>>>
>>>>> WHERE S.ID_EMPRESA = 1
>>>>> AND S.STATUS = 'S'
>>>>> AND I.ID_PRODUTO = 10232
>>>>> and S.DATA_SAIDA>= '03/09/2010'
>>>>> GROUP BY I.ID_PRODUTO, P.DESCRICAO_DETALHADA, I.VALOR_UNITARIO
>>>>>
>>>>> /***************************************************/
>>>>> ID_PRODUTO DESCRICAO_DETALHADA VALOR_UNITARIO
>>>>> 10232 AVENTAL BAGUM AMARELO 5
>>>>> 10232 AVENTAL BAGUM AMARELO 4,8
>>>>> 10232 AVENTAL BAGUM AMARELO 3,8
>>>>>
>>>>>
>>>>>
>>>>> Quando quero a media utilizo o abaixo, que me retorna:
>>>>>
>>>>> SELECT I.ID_PRODUTO, P.DESCRICAO_DETALHADA,
>>>>> AVG(I.VALOR_UNITARIO)
>>>>>
>>>>> FROM ITENS_SAIDAS I
>>>>> INNER JOIN SAIDAS_PRODUTOS S
>>>>> ON (I.ID_SAIDA=S.ID) AND (I.ID_EMPRESA=S.ID_EMPRESA)
>>>>> INNER JOIN PRODUTOS P
>>>>> ON (I.ID_PRODUTO=P.ID) AND (I.ID_EMPRESA=P.ID_EMPRESA)
>>>>>
>>>>> WHERE S.ID_EMPRESA = 1
>>>>> AND S.STATUS = 'S'
>>>>> AND I.ID_PRODUTO = 10232
>>>>> and S.DATA_SAIDA>= '03/09/2010'
>>>>> GROUP BY I.ID_PRODUTO, P.DESCRICAO_DETALHADA
>>>>>
>>>>> /***************************************************/
>>>>> ID_PRODUTO DESCRICAO_DETALHADA AVG
>>>>> 10232 AVENTAL BAGUM AMARELO 4,85
>>>>>
>>>>> Como o fire chegou a esta media de 4.85?? isto não é um bug?
>>>>>
>>>>> Desde já agradeço
>>>>>
>>>>> ______________________________________________
>>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>>
>>>>> ______________________________________________
>>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>>
>>>>
>>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
> AB> ______________________________________________
> AB> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> AB> Para saber como gerenciar/excluir seu cadastro na lista, use:
> AB> http://www.firebase.com.br/fb/artigo.php?id=1107
> AB> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
Mais detalhes sobre a lista de discussão lista