有時候需要旋轉結果以便在水平方向顯示列,而在垂直方向顯示行。這就是所謂的建立 pivottable®、建立交叉資料包表或旋轉資料。
假定有乙個表pivot,其中每季度佔一行。對pivot的 select 操作在垂直方向上列出這些季度:
year quarter amount生成報表的表必須是這樣的,其中每年佔一行,每個季度的數值顯示在乙個單獨的列中,如:---- ------- ------
1990 1 1.1
1990 2 1.2
1990 3 1.3
1990 4 1.4
1991 1 2.1
1991 2 2.2
1991 3 2.3
1991 4 2.4
year
q1
q2
q3
q4
1990
1.1
1.2
1.3
1.4
1991
2.1
2.2
2.3
2.4
下面的語句用於建立pivot表並在其中填入第乙個表中的資料:
use northwind下面是用於建立旋轉結果的 select 語句:gocreate table pivot
( year **allint,
quarter tinyint,
amount decimal(2,1) )
goinsert into pivot values (1990, 1, 1.1)
insert into pivot values (1990, 2, 1.2)
insert into pivot values (1990, 3, 1.3)
insert into pivot values (1990, 4, 1.4)
insert into pivot values (1991, 1, 2.1)
insert into pivot values (1991, 2, 2.2)
insert into pivot values (1991, 3, 2.3)
insert into pivot values (1991, 4, 2.4)
go
select year,該 select 語句還處理其中每個季度佔多行的表。group by 語句將pivot中一年的所有行合併成一行輸出。當執行分組操作時,sum 聚合中的 case 函式的應用方式是這樣的:將每季度的amount值新增到結果集的適當列中,在其它季度的結果集列中新增 0。sum(case quarter when 1 then amount else 0 end) as q1,
sum(case quarter when 2 then amount else 0 end) as q2,
sum(case quarter when 3 then amount else 0 end) as q3,
sum(case quarter when 4 then amount else 0 end) as q4
from northwind.dbo.pivot
group by year
go
如果該 select 語句的結果用作電子**的輸入,那麼電子**將很容易計算每年的合計。當從應用程式使用 select 時,可能更易於增強 select 語句來計算每年的合計。例如:
select p1.*, (p1.q1 + p1.q2 + p1.q3 + p1.q4) as yeartotalfrom (select year,
sum(case p.quarter when 1 then p.amount else 0 end) as q1,
sum(case p.quarter when 2 then p.amount else 0 end) as q2,
sum(case p.quarter when 3 then p.amount else 0 end) as q3,
sum(case p.quarter when 4 then p.amount else 0 end) as q4
from pivot as p
group by p.year) as p1
go
交叉資料包表
有時候需要旋轉結果以便在水平方向顯示列,而在垂直方向顯示行。這就是所謂的建立 pivottable 建立交叉資料包表或旋轉資料。假定有乙個表pivot,其中每季度佔一行。對pivot的 select 操作在垂直方向上列出這些季度 year quarter amount 1990 1 1.1 1990...
交叉資料包表
ql交叉資料包表 有時候需要旋轉結果以便在水平方向顯示列,而在垂直方向顯示行。這就是所謂的建立 pivottable?建立交叉資料包表或旋轉資料。假定有乙個表 pivot,其中每季度佔一行。對 pivot 的 select 操作在垂直方向上列出這些季度 year quarter amount 199...
對於大資料包表列印
使用大資料的poi處理物件 sxssfworkbook 特點 使用一部分物件 100行 釋放一部分物件 注意事項 1.不支援模板列印 2.不支援太多的樣式 64000 一些字型樣式 font font wb.createfont font.setfontname 黑體 font.setfonthei...