zoukankan      html  css  js  c++  java
  • 2005的行列转换

    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 行受影响)

    http://blog.csdn.net/roy_88/article/details/1509413

  • 相关阅读:
    在Eclipse中使用Checkstyle 检查Java代码规范
    文件缓存法的具体实现
    hdu 4454 Stealing a Cake
    uva 11922
    uva 11020
    uva 12206
    uva 11107
    uva 11796
    uva 11178
    uva 11437
  • 原文地址:https://www.cnblogs.com/railgunman/p/6659544.html
Copyright © 2011-2022 走看看