Usando o T-SQL Como você calcula uma porcentagem de grau de teste?
-
26-09-2019 - |
Pergunta
O que deve ser uma tarefa simples ou uma simples pesquisa no Google, eu fiquei vazio. Estou tentando simplesmente calcular uma porcentagem de grau. Estou tentando usar:
Select round((133 / 150), 2) * 100
Isso resulta em 0. Estou tentando calcular para obter uma pontuação de 89%. Eu tentei várias combinações e estou começando a pensar que é complicado demais para fazer com o T-SQL ou não é possível. o que estou perdendo?
Solução
Experimente isso:
Select round((cast(133 as numeric(20,8))/ cast(150 as numeric(20,8))) * 100, 2)
Você está usando números inteiros no seu exemplo, quando precisar de valores decimais. Ver aqui Para maiores informações.
Outras dicas
Tentar:
Select round(133.0 / 150) * 100
Um int
dividido por um int
é um int
, e 1/2 = 0 (truncamento inteiro)
De maneira mais geral, se você garantir que o numerador seja um flutuador (real/decimal):
Select round(CAST(integervalue as real) / 150) * 100
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow