SQL Server数据库动态交叉表的参考示例

WBOY
发布: 2016-06-07 15:04:35
原创
1640 人浏览过

SQL Server数据库动态交叉表的参考示例: --建立测试环境set nocount oncreate 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 in


SQL Server数据库动态交叉表的参考示例:

<ccid_code>--建立测试环境
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)

--删除测试环境
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
*/</ccid_code>
登录后复制
本文作者:

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板