我爱Aspx >> 数据库 >> SQL实现交叉表的方法SQL实现交叉表的方法
>
交叉一般来讲是分组统计的一种,形式更复杂,显示更清淅,但数据库本身并没有提供实现交叉表的功能,自己创建交叉表不仅要对过程、游标、临时表、动态SQL等非常熟悉,而且思路也要清淅,本例以PUBS.DBO.SALES表的数据做样本:
CREATE PROCEDURE UP_TEST(
@T1 VARCHAR(30),@T2 VARCHAR(30),
@T3 VARCHAR(30),@T4 VARCHAR(30)) AS
--T1 表名,T2,T3是交叉表的两上分类字段,T4是汇总字段
--T2是行字段,T3列字段
BEGIN
DECLARE @SQL VARCHAR(7999),@FIELD VARCHAR(30)
SELECT @SQL=@#SELECT DISTINCT @#+@T3+@# FROM @#+@T1
CREATE TABLE #FIELD(FIELD VARCHAR(30))
--将列字段提取到临时表#FIELD中
INSERT INTO #FIELD EXEC(@SQL)
SELECT @SQL=@#CREATE TABLE CROSS_TEST(@#+@T2+@# VARCHAR(30),@#
DECLARE CUR_FIELD CURSOR LOCAL FOR SELECT * FROM #FIELD
OPEN CUR_FIELD
FETCH CUR_FIELD INTO @FIELD
WHILE @@FETCH_STATUS=0 BEGIN
SELECT @FIELD=@#[@#+@FIELD+@#]@#
SELECT @SQL=@SQL+@FIELD+@# DECIMAL(8,2) DEFAULT 0,@#
【我对这篇文章有话说?】
查询结果分页显示的sql语句[05-22]
MSSQL生成整个数据库的SQL脚本的..[05-22]
执行一个安全的SQL Server安装[05-22]
支持全文检索的SQL Server的扩展[05-22]
怎样获得SQL Server的优化性能[05-22]
怎样发布基于MS SQL Server的程序[05-22]
在SQLServer中怎么样恢复数据的存..[05-22]
在SQL Server中保存和输出图片[05-22]
在SQL Server所在的计算机上运行..[05-22]
在SQL Server的存储过程中处理错..[05-22]
查询数据的最大排序问题(只能用..[05-22]
查询结果分页显示的sql语句[05-22]
随机序列的算法[05-22]
MSSQL生成整个数据库的SQL脚本的..[05-22]
执行一个安全的SQL Server安装[05-22]
支持全文检索的SQL Server的扩展[05-22]
怎样获得SQL Server的优化性能[05-22]
怎样发布基于MS SQL Server的程序[05-22]
在SQLServer中怎么样恢复数据的存..[05-22]
在SQL Server中保存和输出图片[05-22]