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?

Foi útil?

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
scroll top