2005的行列转换
来源:互联网 发布:淘宝卖家页面 编辑:程序博客网 时间:2024/05/16 17:26
2005的行列转换:
create table ta(编号 int,人员 varchar(5), 年份 int,月份 int ,[1号] varchar(5), [2号] varchar(5),[3号] varchar(5),[4号] varchar(5))
insert ta select 1, '张三',2006, 1, '正常', '迟到', '迟到', '事假'
union all select 2, '张三', 2006, 2, '迟到', '事假', '正常', '正常'
union all select 3, '李四', 2006, 3, '正常', '正常', '正常', '正常'
union all select 4, '王五', 2007, 5, '正常', '正常','正常', '正常'
2005的列转行再行转列:
declare @sql varchar(4000)
select @sql=isnull(@sql+',','')+quotename(Orders)
from ta
unpivot
(orders for [原因] in([1号],[2号],[3号],[4号])
)as tb group by Orders
--print @sql
set @sql='select 编号,人员,年份,月份,'+@sql+
'from (
select 编号,人员,年份,月份,原因,Orders
from ta
unpivot
(orders for [原因] in([1号],[2号],[3号],[4号])
)as tb
)tmp
pivot
(count(原因) for Orders in('+@sql+')
)tmp2'
--print @sql
exec(@sql)
编号 人员 年份 月份 迟到 事假 正常
----------- ----- ----------- ----------- ----------- ----------- -----------
1 张三 2006 1 2 1 1
2 张三 2006 2 1 1 2
3 李四 2006 3 0 0 4
4 王五 2007 5 0 0 4
(4 行受影响)
- 2005的行列转换
- SQL的行列转换
- 简单的行列转换
- 行列转换的SQL
- 行列转换的SQL
- DataTable的行列转换
- 有意思的行列转换
- DataTable的行列转换
- 日期的行列转换
- Oracle的行列转换
- 简单的行列转换
- MySQL的行列转换
- 数据库的行列转换
- Oracle的行列转换
- mysql的行列转换
- Oracle的行列转换
- posgre的行列转换
- 数据库记录的行列转换
- 急!!!ascx里的注销
- Win32的lib和MFC程序链接的问题
- xpath学习中
- 想些什么
- jni学习笔记
- 2005的行列转换
- 今日将LUCENE分词的analyzer和seg改成了单态模式!~
- csdn我来了.
- 程序员与程序经理(转载)
- TAG
- windows2003下安装testdirect、QTP及VSS的若干问题
- 综合一下typedef的用法。
- 程序员的希波克拉底誓言
- tomcat做web服务器时,通过地址栏传中文参数时,编码编译