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 ;

    交叉前

     

    交叉后

  • 相关阅读:
    buf.readUInt8()
    buf.readUIntBE()
    buf.readInt32BE()
    buf.readInt16BE()
    buf.readInt8()
    buf.readDoubleBE()
    buf.readFloatBE()
    buf.readIntBE()
    POJ
    【C#】C#托付和事件的实例解说
  • 原文地址:https://www.cnblogs.com/adsoft/p/12701454.html
Copyright © 2011-2022 走看看