当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库动态交叉表的参考示例

MSSQL
SQL SERVER乐观锁定和悲观锁定使用实例
SQL Server 对文件内容进行全文检索的查询
MSSQL 2005的新功能创建数据库快照
给SQL Server Model数据库增加一些变化
拷贝的SQLServer7数据库的恢复方法
如何紧急恢复SQL Server主数据库
SQL Server 2000在win2003上安装不上的解决办法
MySQL 5.0新特性教程 存储过程:第一讲
Web环境下MSSQL Server中数据的磁带备份与恢复
用SQL 2005的ROW_NUMBER() 实现分页功能
SQL Server 2005的100范例程序及数据库下载
sql server2000导入mdf文件
简单SQL语句小结
了解SQL Server 2005五个有用的动态管理对象
使SQL Server数据支持 XML
Sql Server 2000数据库日志日益庞大的解决方法
怎么导出SQL所有用户表的字段信息
保护 SQLServer 2005 Express Edition Server
如何修改SQLServer 2000身份验证模式和系统管理员
简单介绍:MS-SQL数据库开发常用汇总

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 141 ::
收藏到网摘: n/a

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

--建立测试环境

以下为引用的内容:

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
*/