none
Diferença de valores usando AVG RRS feed

  • Pergunta

  • Pessoal,

     

    Tenho uma dúvida. Tenho um mesmo conjunto de dados, em Access97 e em SQL Server. O conteúdo de ambas as tabelas é idêntico. Porém, quando monto uma consulta SQL calculando a média de um dos campos da tabela em Access97 obtenho um resultado. Quando faço a mesma consulta em SQL Server, calculando a média com AVG no mesmo campo, com os mesmos valores, chego a um resultado totalmente diferente!!!

    Alguém já passou por isso? Exisitia alguma falha nesse sentido no Access97 que fora corrigida no SQL Server?

     

    Grato por qualquer ajuda.

     

    Daniel

    terça-feira, 23 de outubro de 2007 12:44

Respostas

  • É, tem razão. Pelo sistema dá a diferença. Executando a consulta pelo Access ou pelo SQL batem os valores.

    Beleza, achei onde pode estar o problema. Mas, isso me deixa ainda com a bomba na mão... rsrsrs...

     

    Obrigado por sua ajuda... vou continuar na briga.

     

    []´s

     

    • Marcado como Resposta Daniel Silveira terça-feira, 10 de novembro de 2009 17:18
    terça-feira, 23 de outubro de 2007 18:20

Todas as Respostas

  •  

    isso pode acontecer se a coluna usada no avg contem valores null. o sql iguinora esses valores tente usar

     

    select avg(isnull(campo,0)) from ...

     

    e retorne caso ainda nao estejam iguais.

     

    Abs;

    terça-feira, 23 de outubro de 2007 12:47
  • Caro Marcelo,

     

    Obrigado pela resposta, mas já tentei isso também... continuo obtendo resultados diferentes...

    Sabe se há alguma outra possibilidade?

     

    []s

     

    terça-feira, 23 de outubro de 2007 12:51
  • so para testar crie uma tabela no sql com uma coluna

     

    create table tabela_sql (campo int)

     

    insert into tabela_sql (campo) Values (10)

    insert into tabela_sql (campo) Values (10)

    insert into tabela_sql (campo) Values (10)

    insert into tabela_sql (campo) Values (10)

    insert into tabela_sql (campo) Values (10)

     

    e so acess

     

     

    create table tabela_access  (campo int)

     

    insert into tabela_access  (campo) Values (10)

    insert into tabela_access  (campo) Values (10)

    insert into tabela_access  (campo) Values (10)

    insert into tabela_access  (campo) Values (10)

    insert into tabela_access  (campo) Values (10)

     

     

    rode o comando, e veja se sao diferentes, fiz um teste aqui e foram iguais,

     

    Abs;

    terça-feira, 23 de outubro de 2007 13:02
  • De fato Marcelo, nesse caso foram iguais. Testei com outros tipos de dados, como float e money. Também ficaram iguais... porém no meu caso, o problema ainda persiste.

     

    Tentei também trocar o tipo de dado da tabela Access e SQL no sistema em questão, mas ainda não resolveu. Passei de Currency (Access) para Double e no SQL de Money para Float. Nada... o problema persiste.

     

     

     

    terça-feira, 23 de outubro de 2007 13:28
  • quais os tipos de dados no sql e no access

     

    Abs;

    terça-feira, 23 de outubro de 2007 14:03
  • Tentei em ambos os bancos com Float e Money. Obtive resultados diferentes com ambos os tipos.

     

    []s

     

    terça-feira, 23 de outubro de 2007 15:15
  •  

    o float no access a precisao e diferente do sql 2000, se vc. alterar os dois para decimal (xx,xx) com a mesma precisao acho que vai rolar.

     

    Abs;

    terça-feira, 23 de outubro de 2007 16:22
  • Cara, não rola... deixei tudo igual, decimal com a mesma precisão. A diferença persiste.

    Acho que o problema deve estar no driver de banco de dados. Estou usando o DAO 3.6 em ambos os sistemas. Tanto em Access quando em SQL

     

     

    terça-feira, 23 de outubro de 2007 17:59
  •  

    cara o DAO com sql server so por odbc mesmo, esse deve ser problemas os tipos de dados, quando usamos campos inteiros nao deu problema, vc. nao pode fazer um teste rodando dentro do acess e depois dentro do sql server, sem ser pelo sistema para analisar se ainda existem diferencas ? com o mesmo tipo de dados.

     

    Abs;

    terça-feira, 23 de outubro de 2007 18:16
  • É, tem razão. Pelo sistema dá a diferença. Executando a consulta pelo Access ou pelo SQL batem os valores.

    Beleza, achei onde pode estar o problema. Mas, isso me deixa ainda com a bomba na mão... rsrsrs...

     

    Obrigado por sua ajuda... vou continuar na briga.

     

    []´s

     

    • Marcado como Resposta Daniel Silveira terça-feira, 10 de novembro de 2009 17:18
    terça-feira, 23 de outubro de 2007 18:20