1. ---sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計)
  2. ---2014-08-26 塗聚文(Geovin Du)
  3. CREATE PROCEDURE proc_Select_BookKindSumReport
  4. AS
  5. DECLARE @temp TABLE
  6. (
  7. BookKindID INT IDENTITY(1, 1) ,
  8. BookKindName VARCHAR(10),
  9. BookKindParent int,
  10. BookKindSum int
  11. )
  12. --
  13. declare @id int,@grouid nvarchar(500),@sql nvarchar(4000),@cstucount int,@c int
  14. DECLARE @tempId INT ,
  15. @tempName VARCHAR(10),
  16. @tempParent int
  17. drop table #temp
  18. select * into #temp from BookKindList
  19. WHILE EXISTS ( SELECT BookKindID FROM #temp )
  20. BEGIN
  21. SET ROWCOUNT 1
  22. SELECT @tempId = [BookKindID] ,
  23. @tempName = [BookKindName],
  24. @tempParent=BookKindParent
  25. FROM #temp
  26. SET ROWCOUNT 0
  27. --
  28. delete from #temp where BookKindID = @tempId
  29. set @id=@tempId
  30. select @grouid=dbo.GetBookKindGroupId (@id)
  31. select @sql='SELECT @c=count(*) FROM BookInfoList where BookInfoKind in ('+@grouid+')'
  32. --exec (@sql)
  33. exec sp_executesql @sql,N'@c int output',@cstucount output--将exec的结果放入变量中的做法
  34. --select @cstucount as 'sum'
  35. --PRINT '记录:----'+ cast(@tempId as varchar(20))+',' + @tempName+','+ cast(@tempParent as varchar(20))+' sum:'+ cast(@cstucount as varchar(50))
  36. insert into @temp(BookKindName,BookKindParent,BookKindSum) values(@tempName,@tempParent,@cstucount)
  37. END
  38. select * from @temp order by BookKindParent
  39. GO
  40.  
  41. --利用游标来遍历表
  42. --定义表变量
  43. DECLARE @temp TABLE
  44. (
  45. BookKindID INT IDENTITY(1, 1) ,
  46. BookKindName VARCHAR(10),
  47. BookKindParent int
  48. )
  49.  
  50. DECLARE @tempId INT ,
  51. @tempName VARCHAR(10),
  52. @tempParent int
  53. DECLARE test_Cursor CURSOR LOCAL FOR
  54. SELECT BookKindID,BookKindName,BookKindParent FROM @temp
  55. --插入数据值
  56. INSERT INTO @temp VALUES ( 'a',1 )
  57. INSERT INTO @temp VALUES ( 'b',2 )
  58. INSERT INTO @temp VALUES ( 'c',3 )
  59. INSERT INTO @temp VALUES ( 'd',4 )
  60. INSERT INTO @temp VALUES ( 'e',5 )
  61. --打开游标
  62. OPEN test_Cursor
  63. WHILE @@FETCH_STATUS = 0
  64. BEGIN
  65. FETCH NEXT FROM test_Cursor INTO @tempId,@tempname,@tempParent
  66. PRINT '记录:----' + cast(@tempId as varchar(20))+',' + @tempName+','+ cast(@tempParent as varchar(20))
  67. END
  68. CLOSE test_Cursor
  69. DEALLOCATE test_Cursor

sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計)的更多相关文章

  1. sql 按年月日统计

    1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月select year(orderti ...

  2. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  3. SQL 根据日期精确计算年龄

    SQL 根据日期精确计算年龄 第一种: 一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄 datediff(year,birthday,getdate()) 例:birt ...

  4. sql之分段统计

    sql之分段统计 需求:获取一个县所有家庭人数在1-2人,3-4人,5-6人,6人以上的家庭数的数组 思路:通过CASE WHEN 将 CBFCYSL分组,然后统计数据条数. 语句: SELECT T ...

  5. 大数据学习day24-------spark07-----1. sortBy是Transformation算子,为什么会触发Action 2. SparkSQL 3. DataFrame的创建 4. DSL风格API语法 5 两种风格(SQL、DSL)计算workcount案例

    1. sortBy是Transformation算子,为什么会触发Action sortBy需要对数据进行全局排序,其需要用到RangePartitioner,而在创建RangePartitioner ...

  6. SQL PL/SQL语法手册

    SQL  PL/SQL语法手册 目   录 第一部分  SQL语法部分 3 一. CREATE TABLE 语句 3 二. CREATE SEQUENCE语句 5 三. CREATE VIEW语句 6 ...

  7. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  8. SQL Server SQL性能优化之--通过拆分SQL提高执行效率,以及性能高低背后的原因

    复杂SQL拆分优化 拆分SQL是性能优化一种非常有效的方法之一, 具体就是将复杂的SQL按照一定的逻辑逐步分解成简单的SQL,借助临时表,最后执行一个等价的逻辑,已达到高效执行的目的 一直想写一遍通过 ...

  9. SQL Server SQL分页查询

    SQL Server SQL分页查询的几种方式 目录 0.    序言 1.    TOP…NOT IN… 2.    ROW_NUMBER() 3.    OFFSET…FETCH 4.    执行 ...

随机推荐

  1. 如何分析python的性能(linux)

    一.多进程: 查看程序所有进程与线程 如果python程序启动后形成多个进程如何判断其关系 显示进程的树状结构.-cp 表示树展开,且显示进程号码 $pstree -cp 显示结果 │ │ │ ├─p ...

  2. html5兼容问题

    1.html5对于ie9一下的版本不支持,所以我们可以添加(你可以下载至本地): <!--[if lt IE 9]> <script src="http://cdn.sta ...

  3. v-model和v-bind的区别

    VUE学习篇1 Mustache (双大括号写法)不能在 HTML 属性中使用,应使用 v-bind 指令: <div v-bind:id="dynamicId">&l ...

  4. Rx

    more detailed in WIKI's document SDP :session description protocal book AAA AA-Answer 鉴权授权应答AAR AA-R ...

  5. python爬虫之urllib库(一)

    python爬虫之urllib库(一) urllib库 urllib库是python提供的一种用于操作URL的模块,python2中是urllib和urllib2两个库文件,python3中整合在了u ...

  6. Python——爬取百度百科关键词1000个相关网页

    Python简单爬虫——爬取百度百科关键词1000个相关网页——标题和简介 网站爬虫由浅入深:慢慢来 分析: 链接的URL分析: 数据格式: 爬虫基本架构模型: 本爬虫架构: 源代码: # codin ...

  7. java centos7配置查看jdk环境变量

    [root@bogon java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64]# which java/usr/bin/java[root@bogon jav ...

  8. php+windows环境安装

    1.下载并安装phpstorm 2.查找激活码激活phpstorm 3.由于php官方没有提供exe版本,安装phpstudy,获得windows下exe编译版本的php 4.安装VisualSVN ...

  9. 截取字符串-【.net】

    问题: 如: asdasdfasdf asdfasdf 12sdfsdf asdfa 截取后为: asdasdfasdf asdfasdf 12sdfsdf 为第一段asdfa 为第二段 解答: Di ...

  10. UML 依赖\泛化\关联\实现\聚合\组合的 Java实现

    在类图中,类与类之间的关系主要有一下几种: 泛化关系:(就是继承) public class Employee { } public class SaleEmployee extends Employ ...