一个简单的交叉报表
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
--行转列小实例
--创建测试表
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 ;
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341