I have this query :
SELECT ..... ,( CAST(col1 AS MONEY) / CAST (col2 AS MONEY) ) as calc1 from mytable...
(returns 1000 rows)
Now I need to add more columns based on calc1 expression ( e.g. calc2 = calc1 * 4)
I don’t want to do this :
SELECT (CAST(col1 AS MONEY) / CAST(col2 AS MONEY)) AS calc1, --same
(CAST(col1 AS MONEY) / CAST(col2 AS MONEY)) * 4 AS calc2, -- dragged calc1
((CAST(col1 AS MONEY) / CAST(col2 AS MONEY)) * 4) * 50 AS calc2, -- dragged calc2
(((CAST(col1 AS MONEY) / CAST(col2 AS MONEY)) * 4) * 50) * 60 AS calc2 -- dragged calc3
visualization : the yellow part is repeating itself with added calculations…

what is the best way of doing this ?
You could use a common table expression (CTE):