数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQL实现动态交叉表【用游标实现】


发布日期:2022年12月31日
 
SQL实现动态交叉表【用游标实现】

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

ALTER procedure CrossTable

@strTableName as varchar()= 查询表

@strCol as varchar()=

@strGroup as varchar()=分组字段

@strNumber as varchar()=被统计的字段

@strCompute as varchar()=Sum运算方式

as

declare @strSql as varchar()@strTempCol as varchar()

execute (DECLARE corss_cursor CURSOR FOR SELECT DISTINCT +@strCol+ from +@strTableName+ for read only) 生成游标

begin

set nocount on

set @strSql=select +@strGroup++@strCompute+(+@strNumber+) as [+@strNumber+]

open corss_cursor

while(=)

begin

fetch next from corss_cursor

into @strTempCol

if(@@fetch_status <>) break

set @strSql=@strSql++@strCompute+( case +@strCol+ when +@strTempCol+ then +@strNumber + else end ) as [+@strTempCol+]

end

set @strsql=@strSql+ from +@strTableName+ group by +@strGroup

print @strSql

execute(@strSql)

if @@error <> return @@error

print @@error

close corss_cursor

deallocate corss_cursor return

end

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

               

上一篇:Access 新手来看

下一篇:SQL语句的22条法宝[2]