Sto cercando di ottenere il codice seguente per funzionare, singolarmente i due pezzi di codice (nella parte WHEN
e nella parte ELSE
) funzionano ma se utilizzati in questo CASE
Ho ricevuto un erroreSQL, sintassi errata sull'istruzione CASE accanto alla parola chiave 'FROM'
"Sintassi non corretta vicino a" CAST ", attesa" AS "." errore.
In sostanza se il codice WHEN
affermazioni è uguale o superiore a 24 quindi utilizzare l'istruzione THEN
se è sotto 24 quindi utilizzare l'istruzione ELSE
.
Non riesco a farlo funzionare dopo aver provato per diverse ore qualsiasi indicazione su dove sto andando male sarebbe molto apprezzato.
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]
(convertire (float, DateDiff (mi, start_work, end_work))/60)> = '24' non dovrebbe avere virgolette intorno a 24. –