昨天写报表遇到行转列,原来都是使用动态sql来实现,这次尝试使用了下pivot来实现,pivot是sql server2005后加入的关键字,它使用起来比较方便,比起动态sql会简化很多。
基本语法:select 列1,[A],[B],[C]... from table pivot (聚合函数(列1) for 列2 in ([A],[B],[C]......)) as t
例1:
1.数据准备
CREATE TABLE #profit
(Yer_mon VARCHAR(20),
dep_nam VARCHAR(20),
prf_amt INT
)
INSERT INTO #profit( Yer_mon, dep_nam, prf_amt )VALUES ( '201301', '深圳分行', 10 )
INSERT INTO #profit( Yer_mon, dep_nam, prf_amt )VALUES ( '201301', '北京分行', 20 )
INSERT INTO #profit( Yer_mon, dep_nam, prf_amt )VALUES ( '201302', '上海分行', 5 )
INSERT INTO #profit( Yer_mon, dep_nam, prf_amt )VALUES ( '201303', '深圳分行', 20 )
INSERT INTO #profi