não considerar o dia anterior ao dia atual para calculo de dias em atraso
12/03/2015
0
Bom dia
Alguém pode me indicar onde está o erro nessa sintaxe?
case when DATEDIFF (day,MAX (ROD.DT_RODADA), DATEADD (day,-1, getdate())) then 0
else datediff(DAY, MAX (ROD.DT_RODADA), GETDATE ()) END AS 'DIAS_ATRASO'
Estou calculando os dias em atraso, mas caso a última data seja anterior ao dia atual, o resultado deve ser = 0
utilizando apenas essa condição datediff(DAY, MAX (ROD.DT_RODADA), GETDATE ()) dá certo para quem está atrasado a mais de 1 dia, mas quem teve a última data anterior a data atual me trás o resultado = 1 e preciso que traga 0
Obrigado
Alguém pode me indicar onde está o erro nessa sintaxe?
case when DATEDIFF (day,MAX (ROD.DT_RODADA), DATEADD (day,-1, getdate())) then 0
else datediff(DAY, MAX (ROD.DT_RODADA), GETDATE ()) END AS 'DIAS_ATRASO'
Estou calculando os dias em atraso, mas caso a última data seja anterior ao dia atual, o resultado deve ser = 0
utilizando apenas essa condição datediff(DAY, MAX (ROD.DT_RODADA), GETDATE ()) dá certo para quem está atrasado a mais de 1 dia, mas quem teve a última data anterior a data atual me trás o resultado = 1 e preciso que traga 0
Obrigado
Marcio Carvalhal
Curtir tópico
+ 0
Responder
Posts
12/03/2015
Marcio Carvalhal
Ahhhh...a minha sintaxe apresenta esse erro An expression of non-boolean type specified in a context where a condition is expected, near 'then'.
acredito que é por causa da condição - 1, mas não estou conseguindo resolver
acredito que é por causa da condição - 1, mas não estou conseguindo resolver
Responder
12/03/2015
Ignez Mello
Carvalhal, tudo bem?
Na verdade, está faltando o valor de comparação na cláusula WHEN
case when DATEDIFF (day,MAX (ROD.DT_RODADA), DATEADD (day,-1, getdate())) "= 0"
then 0
else datediff(DAY, MAX (ROD.DT_RODADA), GETDATE ())
END AS 'DIAS_ATRASO'
Na cláusula WHEN você calcula a diferença de dias entre a dt_rodada e o getdate(), mas não compara com nada. Eu coloquei = 0 apenas como exemplo, você precisa informar o valor que for mais adequado à sua query.
Ignez
Na verdade, está faltando o valor de comparação na cláusula WHEN
case when DATEDIFF (day,MAX (ROD.DT_RODADA), DATEADD (day,-1, getdate())) "= 0"
then 0
else datediff(DAY, MAX (ROD.DT_RODADA), GETDATE ())
END AS 'DIAS_ATRASO'
Na cláusula WHEN você calcula a diferença de dias entre a dt_rodada e o getdate(), mas não compara com nada. Eu coloquei = 0 apenas como exemplo, você precisa informar o valor que for mais adequado à sua query.
Ignez
Responder
Clique aqui para fazer login e interagir na Comunidade :)