Estás cerca, pero para que esto funcione tienes que construir tu PIVOT
usando SQL dinámico y luego ejecútelo. Entonces, después de completar su variable @Year, debe hacer algo como esto:
DECLARE @Query VARCHAR(MAX)
SET @Query = '
SELECT * from ( SELECT Amount, FYYear, column1, column2,column3 from BUYSCTE ) BUY
PIVOT( SUM(Amount) FOR FYYear in ('+ @Year + ') ) pvt'
EXEC(@Query)
Aunque antes de hacer esto, debería echar un vistazo a este enlace .