zoukankan      html  css  js  c++  java
  • 一个简单的交叉报表_行转列

    --行转列小实例
    --创建测试表
    if object_id(N'test', N'U') is not null
      drop table test
    go
    with PivotTable as
    (
      select 'xxx' as czy, '点赞' as czlx, 2 as num
      union all
      select 'xxx', '浏览' as czlx, 14 as num
      union all
      select 'yyy', '浏览' as czlx, 10 as num
      union all
      select 'zzz', '浏览', 30
      union all
      select 'zzz', '点赞', 3 
    )
    select * into test from PivotTable
    go
    --创建存储过程
    if exists(select name from sysobjects where name = 'usp_GetPivotInfo')
        drop proc usp_GetPivotInfo
    go
    
    create proc usp_GetPivotInfo
    as
    declare @czlx varchar(500),
            @SQL varchar(2000)        
    select @czlx = stuff((select distinct ',[' + czlx + ']'  from test for xml path ('')),1,1,'')
    --select @czlx
    set @SQL = 'select czy, {#} from test pivot(sum(num) for czlx in ({#})) as T';
    set @SQL = replace(@SQL, '{#}', @czlx);
    exec(@SQL);
    go
    
    exec usp_GetPivotInfo ;

    交叉前

     

    交叉后

  • 相关阅读:
    种子销售管理需求
    三角函数
    软件人性化的体现
    三角函数
    ProductManager
    不能说的秘密
    种子销售管理需求
    JTable使用
    不能说的秘密
    设计模式(了解篇)转载
  • 原文地址:https://www.cnblogs.com/adsoft/p/12701454.html
Copyright © 2011-2022 走看看