`

Sql Server 生成数据透视表

 
阅读更多

数据透视表是分析数据的一种方法,在Excel中就包含了强大的数据透视功能。数据透视是什么样的呢?给个例子可能更容易理解。假设有一张数据表:

     销售人员 书籍 销量

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

小王 Excel教材   10

小李 Excel教材 15

 小王 Word教材 8

小李 Excel教材 7

小王 Excel教材   9

小李 Excel教材 2

 小王 Word教材 3

小李 Excel教材

一种数据透视的方法是统计每个销售人员对每种书籍的销量 ,结果如下

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

Excel教材 Word教材  总计

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

  小王 29 0 29

小李 19 11 30

各位看明白了吗?这是最简单的一种数据透视了,如果有必要也可以有多级分组。

好了,那在Sql Server中如何视现数据透视的功能呢?我是Sql Server的初学者,看了网上的一些例子,结合自己的理解写了下面这些Sql语句.

生成基础数据的代码

Create   table  s(

复制代码
    [ name ]   nvarchar ( 50 ),
    book 
nvarchar ( 50 ),
    saledNumber 
int
)

insert   into  s ( [ name ] ,book,saledNumber)  values ( ' 小王 ' , ' Excel教材 ' , 10 );
insert   into  s ( [ name ] ,book,saledNumber) values ( ' 小李 ' , ' Excel教材 ' , 15 );
insert   into  s ( [ name ] ,book,saledNumber) values ( ' 小王 ' , ' Word教材 ' , 8 );
insert   into  s ( [ name ] ,book,saledNumber) values ( ' 小李 ' , ' Excel教材 ' , 7 );
insert   into  s ( [ name ] ,book,saledNumber) values ( ' 小王 ' , ' Excel教材 ' , 9 );
insert   into  s ( [ name ] ,book,saledNumber) values ( ' 小李 ' , ' Excel教材 ' , 2 );
insert   into  s ( [ name ] ,book,saledNumber) values ( ' 小王 ' , ' Word教材 ' , 3 );
insert   into  s ( [ name ] ,book,saledNumber) values ( ' 小李 ' , ' Excel教材 ' , 5 );
复制代码

 

 

生成数据透视表

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

 

 

上面的查询语句首先是拼接了一条"Sql语句",它的最终结果为:

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

 

当然,如果表中的数据不同,那么这生成的Sql语句也是不同的。最后它调用了Sql Server的系统存储过程Exec来执行这条语句。截个图吧。

 

这就是在Sql Server中生成数据透视表的实现,其实它的核心也就是上面拼接成的那条Sql语句。更复杂的透视方式,比如多级透视,也是在这个基础上的实现的。

分享到:
评论

相关推荐

    sql server 生成交叉表

    #### 描述:SQL Server生成交叉表,可以用标准SQL生成类似交叉表效果 此描述进一步明确了目标是使用标准SQL语法来实现交叉表的功能,即在一个表格中,行和列的数据可以相互转换,形成类似透视的效果。 #### 知识点...

    Excel 2010电子表格_数据透视表和数据透视图_数据透视表和透视图.pdf

    在Excel 2010中,数据透视表和数据透视图是极其强大的工具,用于处理和分析大量数据。它们提供了一种高效的方式,使用户能够快速理解和总结复杂的数据集。 一、认识数据透视表 数据透视表的核心在于其“动态”和...

    Excel 2007数据透视表完全剖析 1/7

    7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel...

    Excel 2007数据透视表完全剖析 3/7

    7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel...

    SQL server2008数据库查询中的数据透视与数据逆透视.pdf

    SQL Server 2008 中数据透视(PIVOT)和数据逆透视(UNPIVOT)操作是用于转换表数据格式的SQL关系运算符。它们能够将行转换成列或将列转换成行,以便于进行数据分析和报告。 数据透视(PIVOT)操作允许我们把一个表...

    Excel 2007数据透视表完全剖析 5/7

    7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel...

    用Excel操作SQLServer数据.zip

    本压缩包“用Excel操作SQLServer数据.zip”很显然是关于如何在Excel中连接并操作SQL Server数据库的教程或指南。以下将详细阐述这个主题中的关键知识点。 首先,要实现Excel与SQL Server之间的交互,你需要了解ODBC...

    Excel透视表报表生成组件源码(cs 2005,2008)

    为了实现将应用系统中的数据以Excel的数据透视表来显示的目的,我们应采用从外部数据源获取数据来生成Excel数据透视表的方式。而构成一个Excel的数据透视表报表的基本要素是数据源连接信息、所获取的查询结果、报表...

    Excel 2007数据透视表完全剖析 4/7

    7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel...

    SQL Server交叉表的客户端实现方案.pdf

    交叉表,又称透视表,可以将原始数据按照多个维度进行汇总和展示,使得数据更直观易读。SQL Server本身并不直接支持客户端的交叉表查询,但可以通过一些间接方法实现。 首先,文章介绍了SQL Server的基本特性,它是...

    SQL Server 2008 商业智能与实战\快速入门 之六 使用Excel创建随心所欲报表

    在创建数据透视图时,Excel会自动基于已创建的数据透视表生成图表。选择合适的图表类型,如柱状图、折线图或饼图,可以更直观地展示数据的分布和变化。 编辑报表的环节,允许我们进一步定制和优化报表的外观和内容...

    Access、SQLServer、Excel三者之间实现导入与导出

    它的功能包括公式、图表、数据透视表等,使得数据处理和分析变得直观。Excel可以方便地导入Access或SQL Server的数据,如通过“数据”菜单的“从Access导入”或“从SQL Server获取数据”功能。同时,Excel也可以导出...

    SQL Server 工具教程(最值得下载,实用)

    通过多维数据集和数据透视表,用户可以进行复杂的数据分析。 5. **SQL Server Reporting Services (SSRS)**:报表生成工具,支持创建各种格式的报表,并能通过电子邮件或其他方式分发。用户可以通过它构建交互式、...

    Excel+SQL Server 数据库管理技术详解

    通过使用数据透视表,用户可以对数据进行多维度分析。此外,VLOOKUP、HLOOKUP等查找函数,以及INDEX和MATCH组合,可以帮助用户进行复杂的数据查找和匹配。 接下来,我们转向SQL Server。SQL Server提供了强大的...

    SQL SERVER与ACCESS、EXCEL数据转换

    它的计算功能、图表制作和数据透视表功能使其成为业务分析师的首选工具。 数据转换的需求通常源于以下场景: - **数据整合**:当数据分布在多个系统中时,需要将数据集成到一个统一的平台,如SQL Server,以进行...

    SQL Server 2008报表服务入门到精通

    SQL Server 2008报表服务(Report Services)是SQL Server的一个组件,它提供了企业级的报表解决方案,能够生成交互式、可打印的报表,支持多种数据源,并允许用户自定义报表展现样式和格式。报表服务不仅支持Web...

    SQL.Server.2005高级数据分析之财务管理常规分析建模

    在SQL Server 2005中,高级数据分析是企业级数据管理的重要组成部分,尤其是在财务管理领域。这个主题主要探讨如何利用SQL Server 2005的功能进行财务数据的深入挖掘、模型构建以及有效的决策支持。以下是关于这个...

    Navicat for SQL Server.rar

    工具提供了一套完整的数据查看和编辑工具,包括数据表视图、数据网格视图和数据透视表视图。用户可以直观地查看和编辑数据库中的数据,进行增删改查操作,并支持数据排序、过滤和搜索。 3. **SQL开发与调试**: ...

    sql server 行列转换

    1. **销售报表**:假设有一个销售数据表,包含不同产品的销售额,可以通过行列转换生成一个按产品分类的销售额汇总报表。 2. **财务分析**:对于财务数据,可以将不同类别的收支项目转换成多列展示,方便进行财务...

    [sql server]SQL Server2005杂谈(5):将聚合记录集逆时针和顺时针旋转90度.doc

    这种操作被称为"透视",在SQL Server 2005中可以通过`PIVOT`函数实现。使用`PIVOT`函数,我们可以将上述查询转换为: ```sql select * from @t pivot(count(name) for name in([abc], [ttt], [xxx])) p ``` 这里...

Global site tag (gtag.js) - Google Analytics