• 您的位置我爱Aspx >> 数据库 >> SQL实现交叉表的方法
  • SQL实现交叉表的方法

  • 作者:aspxer  来源:internet  日期:2007-5-22 0:33:09  关键字: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,@#

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:sql server2000中怎么对存储过程进行加密和解密
    下一篇:查询数据的最大排序问题(只能用一条语句写)