91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

小技巧實現SQL Server生成數據透視表

admin
2011年5月4日 23:17 本文熱度 3072

數據透視表是分析數據的一種方法,在Excel中就包含了強大的數據透視功能。數據透視是什么樣的呢?給個例子可能更容易理解。假設有一張數據表:


銷售人員 書籍 銷量


----------------------------------------


小王 Excel教材   10


小李 Excel教材 15


小王 Word教材 8


小李 Excel教材 7


小王 Excel教材   9


小李 Excel教材 2


小王 Word教材 3


小李 Excel教材 5 


一種數據透視的方法是統計每個銷售人員對每種書籍的銷量 ,結果如下


----------------------------------------------------------------


Excel教材 Word教材  總計


---------------------------------------------- -----------------


小王 29 0 29


小李 19 11 30


各位看明白了嗎?這是最簡單的一種數據透視了,如果有必要也可以有多級分組。


好了,那在Sql Server中如何視現數據透視的功能呢?我是Sql Server的初學者,看了網上的一些例子,結合自己的理解寫了下面這些Sql語句.


生成基礎數據的代碼

  1. Create table s(  
  2.  
  3.     [name] nvarchar(50),  
  4.     book nvarchar(50),  
  5.     saledNumber int 
  6. )  
  7.  
  8. insert into s ([name],book,saledNumber) values('小王','Excel教材',10);  
  9. insert into s ([name],book,saledNumber)values('小李','Excel教材',15);  
  10. insert into s ([name],book,saledNumber)values('小王','Word教材',8);  
  11. insert into s ([name],book,saledNumber)values('小李','Excel教材',7);  
  12. insert into s ([name],book,saledNumber)values('小王','Excel教材',9);  
  13. insert into s ([name],book,saledNumber)values('小李','Excel教材',2);  
  14. insert into s ([name],book,saledNumber)values('小王','Word教材',3);  
  15. insert into s ([name],book,saledNumber)values('小李','Excel教材',5); 

生成數據透視表

  1. set @sql = 'SELECT [name], ' 
  2. select @sql = @sql + 'sum(case  book when '+quotename(book,'''')+' then saledNumber else 0 end) as ' + quotename(book)+','  
  3. from s group by book  
  4. select @sql = left(@sql,len(@sql)-1)  
  5. select @sql = @sql + ', sum(saledNumber) as [sum] from s group by [name]' 
  6. select @sql  
  7. exec(@sql) 

上面的查詢語句首先是拼接了一條"Sql語句",它的最終結果為:

  1. SELECT [name], sum(case  book when 'Excel教材' then saledNumber else 0 end)   
  2. as [Excel教材],sum(case  book when 'Word教材' then saledNumber else 0 end)   
  3. as [Word教材], sum(saledNumber) as [sumfrom s group by [name

當然,如果表中的數據不同,那么這生成的Sql語句也是不同的。最后它調用了Sql Server的系統存儲過程Exec來執行這條語句。截個圖吧。



這就是在Sql Server中生成數據透視表的實現,其實它的核心也就是上面拼接成的那條Sql語句。更復雜的透視方式,比如多級透視,也是在這個基礎上的實現的。


該文章在 2011/5/4 23:17:37 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 青青草免费在线视频 | 区二区视频免费看 | 最新国产人妖ts视频 | 中文字幕日韩经典 | 欧美日韩精品一区二 | 尤物视频在线网站 | 日韩午夜视频欧美 | 91电影成人天堂 | 区二区69 | 欧美在线高 | 青青青草国产线观 | 91精品国产丝袜 | 国产精品精华液网站 | 精品国语任你躁 | 无码成人1000部免费视频 | 国内揄拍国内精品视 | 成人无毒综合网 | 日本免费综合 | 日韩在线二区全免费 | 午夜射精日韩 | 精品免费国产影视 | 国产黄a三级| 日本欧美日韩视 | 国产宗合色 | 91视频一区在线 | 91桃色永久入口 | 福利导航网址在线 | 成人免费视频在 | 国产91热爆91啪 | 日韩国产免费一 | 波多野结衣福利在线 | 精品一区字幕二区 | 欧洲无线码免费一区 | 国产区图片 | 午夜成人影院在线看 | 日韩乱伦一二三区 | 中文字幕自拍偷拍 | 日本aⅴ日| 国产偷国产偷亚洲高 | 国产日韩精品高清 | 日韩欧美亚洲综合 |