Olá a todos.
Desde há uns dias que estou encravado com um problema:
Tenho uma base de dados Access 2010 frontend, que busca os dados a outra base de dados backend, também em Access 2010.
Até aqui tudo bem. Agora estou a migrar os dados para o SQL server 2019 express. A frontend agora busca os dados também através de tabelas via «link». Acontece que uma consulta (query) que fazia A x B x C e dava 1.0153, ao arredondar para 2 casas decimais, dava 1.02, o que está bem.
Buscando EXATAMENTE os mesmos dados via SQL server, dá 1.01!!!
Reparem os resultados quando "linkados" a tabelas access:
Valor: 1,015300011869
Valor arredondado a 3 casa decimais: 1.015 (ok)
Arredondado a 2 casas decimais: 1.02 (ok)
O mesmo quando "linkados" a tabelas SQL server:
Valor: 1,015300011869
Arredondado a 3 casa decimais: 1.015 (ok)
Arredondado a 2 casa decimais: 1.01 (!!!)
Mesmo alterando os tipos de dados SQL para decimal, o valor dá o mesmo (1,015300011869) mas o arredondamento dá mal.
Ainda mais esquisito, se arredondar para 3 casas decimais (o que deveria dar 1.015) e arredondar ESSE mesmo resultado, dá 1.01!!!
Portanto, arredondado(arredondado(A x B x C;3);2) dá 1.01 quando arredondado(A x B x C;3) dá 1.015!!!
Alguém tem alguma ideia?
Obrigado!
Desde há uns dias que estou encravado com um problema:
Tenho uma base de dados Access 2010 frontend, que busca os dados a outra base de dados backend, também em Access 2010.
Até aqui tudo bem. Agora estou a migrar os dados para o SQL server 2019 express. A frontend agora busca os dados também através de tabelas via «link». Acontece que uma consulta (query) que fazia A x B x C e dava 1.0153, ao arredondar para 2 casas decimais, dava 1.02, o que está bem.
Buscando EXATAMENTE os mesmos dados via SQL server, dá 1.01!!!
Reparem os resultados quando "linkados" a tabelas access:
Valor: 1,015300011869
Valor arredondado a 3 casa decimais: 1.015 (ok)
Arredondado a 2 casas decimais: 1.02 (ok)
O mesmo quando "linkados" a tabelas SQL server:
Valor: 1,015300011869
Arredondado a 3 casa decimais: 1.015 (ok)
Arredondado a 2 casa decimais: 1.01 (!!!)
Mesmo alterando os tipos de dados SQL para decimal, o valor dá o mesmo (1,015300011869) mas o arredondamento dá mal.
Ainda mais esquisito, se arredondar para 3 casas decimais (o que deveria dar 1.015) e arredondar ESSE mesmo resultado, dá 1.01!!!
Portanto, arredondado(arredondado(A x B x C;3);2) dá 1.01 quando arredondado(A x B x C;3) dá 1.015!!!
Alguém tem alguma ideia?
Obrigado!