Ir para conteúdo
Fórum Script Brasil
  • 0

Case


shelter

Pergunta

Boa galera, estou efetuando uma func. e estou com um sinistro.

Tenho uma tabela com os seguintes campos :

Fila ( varchar )

numero (int )

duracao(TIME)

O que estou fazendo pegando o campo duração, transformando em segundos e depois dou uma condição para ele , ex.

se durucao for <= 30 duracao ='0,04'

se duracao for >30 duracao /6*0,004

Qual o drama, se coloco 0,004 recebo um erro se coloco '0,004' a expressão não funciona ( o resultado fica igual a zero ).

Segue codigo:

select fila,numero, duracao, TIME_TO_SEC(duracao), case
when TIME_TO_SEC(duracao)<=30 THEN '0,04'
when TIME_TO_SEC(duracao)>30 THEN TIME_TO_SEC(duracao)/6*0.004
when TIME_TO_SEC(duracao)=0 THEN 0

END
from vonix where fila = 'POS' and tipo_l = 'fixo' and ddd = '21' and status like "completada%";

alguém saberia como solucionar esta.

Grato

abraços

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

'shelter' ,

O sistema é americano.

Use ponto para decimal e virgula para semparação de milhares.

Será 0.004 e não 0,004 como você está fazendo.

Outra coisa, esta entrada

when TIME_TO_SEC(duracao)=0 THEN 0

nunca será executada.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...