dinâmica dinâmica de sql no servidor sql

Executando esta consulta no sql server 2008 agora, mas planeje movê-la para criar um relatório nos serviços de relatório sql:

SELECT * from ( SELECT Amount, Year, column1, column2,column3 from BUYSCTE ) BUY 

Meus resultados da tabela sendo executados acima da consulta sem o pivô é este

Column1 | Column2 | Column3| FYYear| Amount|

 1           cat     dog      2011   50 
 1           cat     dog      2012   75
 1           cat     dog      2013   65
 2          fish     snake    2011   23
 2          fish     snake    2012   39
 2          fish     snake    2013   59
 .. 
 ..  
 ..                           2016

Então, basicamente, eu quero que os resultados acabem assim:

Column1 | Column2 | Column3| 2011| 2012 | 2013 
 1           cat     dog      50    75     65
 2          fish     snake    23    39     59

ntão, a consulta que surgiu para criar isso foi a primeira vez que criei uma variável de tabela e a fizesse uma variável dinâmica e fiz um pivô como est

declare @Year nvarchar(Max)
set @Year = STUFF(
(SELECT ', ' + quotename(FYYear)
from BUYSCTE Group By FYYear order by
FYYear For XML PATH(''))
, 1, 2, '');

O acima preenche o valor @Year com: [2011], [2012], [2013], [2014], [2015], [2016]

Sei que, porque alterei o acima, selecione SELECT @Year apenas para verificar se o valor está definido corretamente

de lá eu altero a seleção acima após a variável da tabela para

SELECT * from ( SELECT Amount, FYYear, column1, column2,column3 from BUYSCTE ) BUY 
PIVOT( SUM(Amount) FOR FYYear in ([@Year]) ) pvt

mas meus resultados acabam sendo este

 Column1 | Column2 | Column3| @Year|
 1           cat     dog      null   
 2          fish     snake    null

O que estou fazendo de errado? parece que estou sentindo falta de algo pequeno que não consigo me ver. mesmo se eu alterar a função agregada de SUM para COUNT, ele fornecerá 0 para os valores da coluna @Year em vez de null

questionAnswers(1)

yourAnswerToTheQuestion