Это немного трудно точно сказать, что вы пытаетесь сделать, но я думаю, что это может быть то, что вы ищете:
SELECT
DifferenceMinutes,
CASE
WHEN DifferenceMinutes < 0 THEN NULL
ELSE CONVERT(varchar, GETDATE() - DayOfWeekStopTime, 108)
END AS TooLateTime
FROM (
SELECT
DayOfWeekStopTime,
DATEDIFF(MINUTE, DayOfWeekStopTime, GETDATE()) AS DifferenceMinutes
FROM TableName
) X
Вы должны заменить ваш источник таблицы для «TableName» в разделе FROM внутреннего запроса.
Перевернув ваши вычисленные значения во вложенный выбор, как это, вы можете ссылаться на них любым именем, которое вы даете им во внешнем запросе.
Если вы хотите установить переменные для каждого из значений, вы можете сделать это следующим образом, но вы должны убедиться, что вы только возвращение на одну строку из запроса:
DECLARE @DifferenceMinutes int, @TooLateTime varchar(30)
SELECT
@DifferenceMinutes = DifferenceMinutes,
@TooLateTime = CASE
WHEN DifferenceMinutes < 0 THEN NULL
ELSE CONVERT(varchar, GETDATE() - DayOfWeekStopTime, 108)
END
FROM (
SELECT
DayOfWeekStopTime,
DATEDIFF(MINUTE, DayOfWeekStopTime, GETDATE()) AS DifferenceMinutes
FROM TableName
) X
Немного более сложный, чем я надеялся, но работаю. Спасибо. Кроме того, я думаю, что X и конец этих запросов предназначены для D. – Stijn
Да, вы правы. Я исправлю это. –