SQL Server 2008 以降を使用しているため、CROSS APPLY を使用して列から行へのデータのピボットを解除できます。
CROSS APPLY で VALUES 句を使用できます。
select distinct t.country,
c.year,
c.totalvolumn
from yourtable t
cross apply
(
values
('2007', 2007),
('2008', 2008),
('2009', 2009)
) c(year, TotalVolumn)
order by t.country, c.year;
デモで SQL Fiddle を参照してください
または、CROSS APPLY で UNION ALL を使用できます。
select distinct t.country,
c.year,
c.totalvolumn
from yourtable t
cross apply
(
select '2007', 2007 union all
select '2008', 2008 union all
select '2009', 2009
) c(year, TotalVolumn)
order by t.country, c.year;
SQL Fiddle with Demoを参照してください。
これは、UNION クエリを使用して記述することもできます。
select country, '2007' year, 2007 totalVolumn
from yourtable
union
select country, '2008' year, 2008 totalVolumn
from yourtable
union
select country, '2009' year, 2009 totalVolumn
from yourtable
order by country, year;
デモで SQL Fiddle を参照してください