sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計)
2014-08-26 12:54
211 查看
---sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計) ---2014-08-26 塗聚文(Geovin Du) CREATE PROCEDURE proc_Select_BookKindSumReport AS DECLARE @temp TABLE ( BookKindID INT IDENTITY(1, 1) , BookKindName VARCHAR(10), BookKindParent int, BookKindSum int ) -- declare @id int,@grouid nvarchar(500),@sql nvarchar(4000),@cstucount int,@c int DECLARE @tempId INT , @tempName VARCHAR(10), @tempParent int drop table #temp select * into #temp from BookKindList WHILE EXISTS ( SELECT BookKindID FROM #temp ) BEGIN SET ROWCOUNT 1 SELECT @tempId = [BookKindID] , @tempName = [BookKindName], @tempParent=BookKindParent FROM #temp SET ROWCOUNT 0 -- delete from #temp where BookKindID = @tempId set @id=@tempId select @grouid=dbo.GetBookKindGroupId (@id) select @sql='SELECT @c=count(*) FROM BookInfoList where BookInfoKind in ('+@grouid+')' --exec (@sql) exec sp_executesql @sql,N'@c int output',@cstucount output--将exec的结果放入变量中的做法 --select @cstucount as 'sum' --PRINT '记录:----'+ cast(@tempId as varchar(20))+',' + @tempName+','+ cast(@tempParent as varchar(20))+' sum:'+ cast(@cstucount as varchar(50)) insert into @temp(BookKindName,BookKindParent,BookKindSum) values(@tempName,@tempParent,@cstucount) END select * from @temp order by BookKindParent GO --利用游标来遍历表 --定义表变量 DECLARE @temp TABLE ( BookKindID INT IDENTITY(1, 1) , BookKindName VARCHAR(10), BookKindParent int ) DECLARE @tempId INT , @tempName VARCHAR(10), @tempParent int DECLARE test_Cursor CURSOR LOCAL FOR SELECT BookKindID,BookKindName,BookKindParent FROM @temp --插入数据值 INSERT INTO @temp VALUES ( 'a',1 ) INSERT INTO @temp VALUES ( 'b',2 ) INSERT INTO @temp VALUES ( 'c',3 ) INSERT INTO @temp VALUES ( 'd',4 ) INSERT INTO @temp VALUES ( 'e',5 ) --打开游标 OPEN test_Cursor WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM test_Cursor INTO @tempId,@tempname,@tempParent PRINT '记录:----' + cast(@tempId as varchar(20))+',' + @tempName+','+ cast(@tempParent as varchar(20)) END CLOSE test_Cursor DEALLOCATE test_Cursor
相关文章推荐
- SQL语句调优 - 统计信息的含义与作用及维护计算
- SQL 关于如何利用聚合函数把nvarchar型转成int型进行统计计算的方法
- SQL语法计算 统计时间日期
- vertica时间计算SQL语句实例:统计一天内登录的用户
- SparkSQL结合SparkStreaming,使用SQL完成实时计算中的数据统计
- 基于ACCESS和ASP的SQL多个表查询与计算统计代码(二)库存管理系统
- SQL语句调优 - 统计信息的含义与作用及维护计算
- SQL扩展之T-SQL中的数据查询语言之统计计算
- 有时候执行的oracle,sql语句要查看下性能情况,可以用这个进行下简单计算和统计
- sql语句:查询分组统计并计算每组数量
- sql语句实现同一时间范围内并发数统计计算
- 基于ACCESS和ASP的SQL多个表查询与计算统计代码(一)
- 分组统计并计算每组数量sql
- 基于ACCESS和ASP的SQL多个表查询与计算统计代码(一)
- sql 计算某个时间段周六,日总数
- 一般性工作时间计算存储过程(SQL SERVER)
- 用SQL统计记录数
- 用一条SQL完成数据表的行统计
- 用SQL 自定义函数 统计字逗号“,”分隔符的字符总个数
- 用一条SQL完成数据表的行统计