下面请跟着图老师小编一起来了解下sqlserver一个动态交叉表的范例,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
【 tulaoshi.com - 编程语言 】
社区问的人太多了,保存一个备用
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)--建立测试环境
set nocount on
create table test(model varchar(20),date int ,qty int)
insert into test select 'a','8','10'
insert into test select 'a','10','50'
insert into test select 'b','8','100'
insert into test select 'b','9','200'
insert into test select 'b','10','100'
insert into test select 'c','10','200'
insert into test select 'd','10','300'
insert into test select 'e','11','250'
insert into test select 'e','12','100'
insert into test select 'f','12','150'
go
--测试
declare @sql varchar(8000)
set @sql='select model,'
select @sql=@sql+'sum(case when date='''+cast(date as varchar(10))+''' then qty else 0 end)['+cast(date as varchar(10))+'],'
from (select distinct top 100 percent date
from test order by date)a
set @sql =left(@sql,len(@sql)-1)+' from test group by model'
exec(@sql)
--删除测试环境
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)drop table test
set nocount off
/**//*
model 8 9 10 11 12
-------------------- ----------- ----------- ----------- ----------- -----------
a 10 0 50 0 0
b 100 200 100 0 0
c 0 0 200 0 0
d 0 0 300 0 0
e 0 0 0 250 100
f 0 0 0 0 150
*/
来源:http://www.tulaoshi.com/n/20160219/1610932.html
看过《sqlserver一个动态交叉表的范例》的人还看了以下文章 更多>>