Er zijn een paar verwarrende dingen die je doet.
Ten eerste maakt u meestal meerdere kolommen ongedaan. Op dit moment maakt u één kolom ongedaan en het lijkt erop dat u dit alleen doet om de kolom te hernoemen?
Ten tweede aggregeert u de gegevens twee keer, de PIVOT zou de aggregatie moeten kunnen verwerken met behulp van SUM()
.
Ten derde is het niet precies duidelijk waarom je de kolomkoppen als rij nodig hebt, hoe wil je dat de kolomkoppen heten?
Op basis van uw voorbeeldgegevens zou u de PIVOT-functie gewoon moeten kunnen toepassen:
select 'TotalRecords' TotalRecords,
[2012],
[2013],
[All]
from tbleirstatisticsoverviewsummary
pivot
(
sum(totalrecords)
for FiscalYear IN ([2012],[2013],[ALL])
) p;
Zie SQL Fiddle met demo . Als u dan een rij wilt met de kolomkoppen, dan kunt u een UNION ALL gebruiken:
select 'colname' col1,
2012 col2,
2013 col3,
'All' col4
union all
select 'TotalRecords' TotalRecords,
[2012],
[2013],
[All] = cast([all] as varchar(10))
from tbleirstatisticsoverviewsummary
pivot
(
sum(totalrecords)
for FiscalYear IN ([2012],[2013],[ALL])
) p;