Первое заметное аспект SQL, который отличается от других языков программирования является порядком, в котором обрабатывается код. В большинстве языков программирования код обрабатывается в том порядке, в котором он написан. В SQL, то первый пункт, который обрабатывается является
FROM clause,then Where -> Group By -> Having-> Select -> Order By
так ВЫБРАТЬ положение, которое появляется первым, обрабатывается почти последним. Таким образом, вы не можете ссылаться на периоды столбцов с псевдонимом из списка выбора в разделе where, потому что он еще не рассчитан. Вы должны написать:
select [years] from (
select DATEPART(yy, dob) as years
from dbo.tbl_Student_Admission
) T
where T.years between 1990 and 1992
'между '1990' и «1992'' !!! ... они струны ?! конечно, это должно быть «между 1990 и 1992 годами» – whytheq