Conversão na divisão

MySQL

29/04/2014

ola pessoal, estou com problema na divisão da primeira linha desse codigo:

select CAST(count(b1.idbrinquedo) / count(b2.idbrinquedo) AS DECIMAL ) * 100 AS PORCENTAGEM
FROM brinquedos b1
INNER JOIN brinquedos b2
on b1.idbrinquedo not like 'novo'

Nessa linha o resultado de count(b1.idbrinquedo) = 5 e count(b2.idbrinquedo) = 7, ou seja: 5 / 7, que dá 0,7142.
Só que o resultado está sendo 1, ou seja, o resultado ainda está em inteiro.
Se alguem puder me ajudar desde já agradeço a força!!!
Pedro Santos

Pedro Santos

Curtidas 0

Respostas

Marisiana Battistella

Marisiana Battistella

29/04/2014

Olá Pedro!
Vou dar uma idéia, não tenho o MySQL pra testar aqui...
Tenta converter os números separadamente e realiza o cálculo com os valores convertidos. Ficaria mais ou menos assim:
select ( CAST(count(b1.idbrinquedo) AS DECIMAL)  / CAST( count(b2.idbrinquedo) AS DECIMAL ) ) * 100 AS PORCENTAGEM
FROM brinquedos b1
INNER JOIN brinquedos b2
on b1.idbrinquedo not like 'novo'


GOSTEI 0
Alex Lekao

Alex Lekao

29/04/2014

Ola Bom dia!!!

Eu sugiro tambem que faca as operacoes usando as separacoes de casas decimais nos divisores.

Nao sei se isso aconteca tambem no mysql, mas ja tive problemas com isso no SQL Server, fazia todo tipo de conversao de numero para la e para ca e nao dava certo, so passou a funcionar qdo usei uma separacao de decimas no divisor, por exemplo no lugar de 9999 / 8 usava 9999 / 8.000.

Comigo funcionou, talvez ajude.

Espero ter ajudado.

Abraco.

Alex - Lekao

GOSTEI 0
Pedro Santos

Pedro Santos

29/04/2014

muito obrigado Marisiana e Alex, o erro estava mesmo na junção que eu fiz.
Esse negocio ta me tirando do sério ja!! rsrs
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

29/04/2014

Por nada! Considero isso é bem normal.
As vezes a solução é simples mas nós que complicamos e não conseguimos enxergá-la. Isso porque nos concentramos nas soluções que achamos mais complicadas... =)
E outras vezes é o cansaço que já está tomando conta.
GOSTEI 0
William

William

29/04/2014

Finalizando o tópico!
GOSTEI 0
POSTAR