[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