Трудно точно сказать, что вы пытаетесь сделать, но я думаю, что это может быть то, что вы ищете:
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