`
Jason_zhu
  • 浏览: 20795 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server数据库纵向转横向

阅读更多

以一张薪资表为例,表结构如下:

 

 

表结构中,每个员工id对应有多个薪资项目以及金额,需要查询时转向,将每个员工的薪资项目转为横向一行显示。

在直接查询(加入一些限制条件以缩小结果集),

 

SELECT 
	ssp_pay_empid,
	ssp_pay_sdate,
	ssp_pay_edate,
	ssp_pay_type,
	ssp_pay_amount,
	ssp_pay_item
FROM ssp_pay
where ssp_pay_empid = 00000073 and ssp_pay_type = 'RT' and ssp_pay_item
	  IN ('/101','/103','/401','/402') and ssp_pay_sdate = '2007-08-01'
 

得到如下结果:


需要将上述查询结果显示为一行,则使用SQL Server 2005新增的PIVOT ,通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。

 

执行如下SQL:

select 
	ssp_pay_empid,
	ssp_pay_sdate,
	ssp_pay_edate,
	ssp_pay_type,
	[/101],
	[/103],
	[/401],
	[/402]
from (
	SELECT 
		ssp_pay_empid,
		ssp_pay_sdate,
		ssp_pay_edate,
		ssp_pay_type,
		ssp_pay_amount,
		ssp_pay_item
	FROM ssp_pay
	where ssp_pay_empid = 00000073 and ssp_pay_type = 'RT' and ssp_pay_sdate = '2007-08-01'
) AS SourceTable 
PIVOT (SUM(ssp_pay_amount) FOR ssp_pay_item
IN ([/101],[/103],[/401],[/402])) AS  PivotTable

 结果为:


 

 

以上为记录笔记,无他用。

 

 

  • 大小: 20.3 KB
  • 大小: 25.3 KB
  • 大小: 12.7 KB
分享到:
评论

相关推荐

    SQL Server数据库查询速度慢原因及优化方法

    【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有...

    数据库动态生成列数据库纵向列转横向列

    姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ---- 李四 74 84 94 ...-------------------

    SQLserver-数据库-安全监控系统.doc

    【论文关键词】SQLserver 数据库 安全监控系统 【论文摘要】数据库监控信息获取策略的研究内容包括:数据库威胁来源、威胁特征、 数据库审计事件、数据库运行性能指标等。通过对数据库所受威胁的研究,建立数据库 ...

    Sql server2005 优化查询速度50个方法小结

    I/O吞吐量小,形成了瓶颈效应。 没有创建计算列导致查询不优化。 内存不足。 网络速度慢。 查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)。 锁或者死锁(这也是查询慢最常见... 2、纵向、横向分割表,减

    基于C#的科研管理系统(源码+数据库).zip

    功能介绍: ... 系统管理:包括参数设置,项目类别设置,学院设置,学历学位设置,著作类别设置。 ... 科研管理模块:包括... 开发环境为Visual Studio 2010,数据库为SQL Server 2008,数据库文件在DB文件夹中附加就行。

    数据导入导出1.1

    SQL Server,MySQL在开发中)中的数据直接导出到打开的任意表格中(支持MS Excel和WPS表格),也可以从任意打开表格中将数据导入到数据库中,还可以将变更前的数据先保存到XML中,数据变化后,可以变化的数据导出到...

    数据导入导出工具 v1.8.zip

    3.可设置出力方向,横向和纵向出力 4.导出数据到新的Excel中 5.导出数据到已打开的Excel的任意位置 6.导出数据到XML中 7.导出数据为SQL文件 8.变更前和变更后的数据对比导出到Excel 9.变更前和变更后的数据...

    NET通用权限管理框架_ui_database

    开发工具 VS2010 、sql2005、2008等(在Sql server数据执行脚本即可;或者还原一下数据库) VS2010 打开保证本地运行成功(数据库、源代码) 设计结构采用标准三层设计,是一套非常成熟的框架程序,可直接用于...

    ASPNET科研管理系统源码v

    系统管理:包括参数设置,项目类别设置,学院设置,学历学位设置,著作类别设置。 ... 科研管理模块:包括横向项目管理、纵向项目管理、论文管理、著作管理、... 开发环境为Visual Studio 2010,数据库为SQL Server 2008

    C#编程经验技巧宝典

    58 <br>0081 文本中首字母改为大写 59 <br>0082 C#随机数的产生 59 <br>0083 身份证从15位升至18位算法 60 <br>0084 十进制数转二进制数的算法 60 <br>0085 十进制数转八进制数的算法 61...

    SDP快速开发平台试用版源码 TrialEditionSDPRapidDevelopmentPlatform.rar

    1、开发环境为Visual Studio 2012,数据库为SQLServer2008R2,使用.net 4.0开发。 2、后台地址:/admin/Manage/index 默认用户名密码:ssh super 3、演示地址...

    智能调度平台系统技术要求.pdf

    数据库仅 限于使用ORACLE或SQL SERVER 2008。 2.5语言支持:简体(GBK)、繁体(BIG5)、西文(ASCII)、 国际统一码(Unicode)。支持中西文混合检索。 2.6系统须采用JAVA语言并基于J2EE架构或者基于C#的.NET平台 ...

    明日科技C#开发入门及项目实战

    实例127 使用odbc dsn连接sql server数据库 实例128 使用ado.net对象录入数据 实例129 利用存储过程录入数据 实例130 使用oledbdatareader读取文本文件的内容 实例131 使用sqldatareader读取用户登录信息 实例132 ...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例127 使用odbc dsn连接sql server数据库 214 实例128 使用ado.net对象录入数据 217 实例129 利用存储过程录入数据 219 实例130 使用oledbdatareader读取文本文件的内容 222 实例131 使用sqldatareader读取用户...

    基于Java-Web平台的科研管理系统设计.doc

    基于Java Web平台的科研管理系统设计 摘要:高职院校的横向科研课题和纵向科研课题越来越多,为了管理方便,需要建立B /S结构的科研管理系统,方便教师提交和管理者管理和统计。系统使用Java Web平台的MVC模式进行开发,...

Global site tag (gtag.js) - Google Analytics