Могу ли я использовать столбец, вычисленный в представлении SQL Server, позже в этом же представлении?
Допустим, у меня есть следующий вид:
Select
t1.StartMile, t2.EndMile, t2.EndMile- t1.StartMile as TotMile
from
TableStarts as t1
inner join
TableEnds as t2 on t1.Id = t2.Id
Есть ли способ отредактировать вид, чтобы сделать следующее
Select
t1.StartMile, t2.EndMile, t2.EndMile - t1.StartMile as TotMile,
TotMile + 30 as EvenMoreMiles
Я попробовал это и получил ошибку:
Неверное имя столбца 'TotMile'
Пожалуйста, не говорите мне использовать t2.EndMile - t1.StartMile + 30 as EvenMoreMiles
. TotMiles
является длинным регистром в моем реальном коде.
Мне скорее не нужно создавать промежуточное представление.
Я использую SQL Server 2005.
ДОБАВЛЕНО ПОЗЖЕ
Спасибо за все ответы. Я буду голосовать за всех.
Ответы поднимают следующий новый вопрос:
Учитывая, что строк тысячи, а TotMiles
выглядит следующим образом, какой из приведенных ответов будет наиболее эффективным? Или было бы наиболее эффективно создать промежуточное представление?
CASE WHEN t .TaskType = 1 and t .StartTime < '1/1/2012'
THEN (tv.EndMile - tv.StartMile )
WHEN NOT (t .Location1_PKey = c.pkey OR t .Location2_PKey = c.pkey)
then (tv.EndMile - tv.StartMile )
WHEN (tv.EndMile - tv.StartMile ) < 31 Then 0
ELSE (tv.EndMile - tv.StartMile - 30 )
END AS MilesAdjusted2012,