You can't refer directly to named items to create a new item within the same select.
So for example this will error :
SELECT 20 AS val1
, 10 AS val2
, val1 / val2
/*
Msg 207, Level 16, State 1, Line 4 Invalid column name 'val1'.
Msg 207, Level 16, State 1, Line 4 Invalid column name 'val2'.
*/
This will work instead (note you need the alias a) :
SELECT val1
, val2
, val1 / val2
FROM ( SELECT 20 AS val1
, 10 AS val2
) a
Or you could use a With clause to get the same result :
;
WITH vals
AS ( SELECT 20 AS val1
, 10 AS val2
)
SELECT val1
, val2
, val1 / val2
FROM vals