Я пытаюсь заставить этот код работать, в отдельности работают две части кода (в части WHEN
и в части ELSE
), но при использовании в этом выражении CASE
я получаю сообщение об ошибке
"Неверный синтаксис рядом с" CAST ", ожидаемый" AS ". ошибка.
В принципе, если код операторов WHEN
равен или больше 24, то используйте оператор THEN
, если его значение меньше 24, затем используйте оператор ELSE
.
Я не могу заставить это работать после того, как в течение нескольких часов будет указано какое-либо указание на то, куда я иду не так.
SELECT CASE
WHEN
(convert(float,datediff(mi, start_work, end_work))/60) >= '24'
THEN
(convert(float,datediff(mi, start_work, end_work))/60)
ELSE
(CAST(convert(varchar(2), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)
* 60 + RIGHT (convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114),
CASE WHEN CHARINDEX(':',convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)) > 0
THEN LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114))-3
ELSE LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114))
END) AS decimal) / 60
FROM NDB.dbo.statusa
INNER JOIN NDB.dbo.details ON statusa.vkey = details.vkey
INNER JOIN NDB.dbo.chegu ON statusa.ckey = NDB.dbo.chegu.gkey
WHERE start_time!= end_time AND string1 = Visit_Id and NDB.dbo.chegu.name = 'loft'
AS [Working]