2
ID Amount Date
------------------------------
1 300 02-02-2010 00:00
2 400 02-02-2009 00:00
3 200 02-02-2011 00:00
4 300 22-02-2010 00:00
5 400 12-02-2009 00:00
6 500 22-02-2009 00:00
7 600 02-02-2006 00:00
8 700 02-07-2012 00:00
9 500 08-02-2012 00:00
10 800 09-02-2011 00:00
11 500 06-02-2010 00:00
12 600 01-02-2011 00:00
13 300 02-02-2019 00:00
所需的输出:如何获得列值到行标题
Y1 Y2 Y3 ...........
sum(amount) sum(amount) sum(amount)
什么是一种方法,其中Y1是日期的年份部分,使得结果列将是下?
2006 2009 2010 2011 2012
---------------------------------
600 1300 800 1900 1200
数据库系统:SQL Server 2008中
这似乎是一个有点复杂。我不知道xml路径。有人能为我轻松一点吗? – syncdm2012 2012-07-07 10:01:27
@DharmendraMohapatra,第一个'select'创建一个名为'years'的变量,它具有'[2009],[2010],[2011]'等等(*它会创建一个由表*中不同年份组成的字符串) 。 我们这样做是因为这是我们在查询的第二部分中使用的'PIVOT'命令所需的语法。 ([* MSDN'FOR XML' *](http://msdn.microsoft.com/en-us/library/ms178107.aspx)) – 2012-07-07 10:09:03
@ Gaby aka G. Petrioli,谢谢 – syncdm2012 2012-07-09 05:44:55