Sql Server 中利用游标对table 的数据进行分组统计式输出…
Table Name: Tb_Color
Create table Tb_Color(id int identity(1,1),
                             Color varchar(20),
                             Qty Int)
ID Color   Qty
=============
1     Blue       10
2     Blue     11
3     Blue        12
4     Blue        13
5     Blue        14
6     Red        5
7     Red        6
8     Red        7
Write Store Procedure,
Procedure Table Name: Proc_Group_Total
 
Write Store Procedure,
Procedure Table Name: Proc_Group_Total
/* -------------------------------------------------- *
 * Procedure Name: Proc_Group_Total                  *
 *                                                   *
 * Author:Lilo.Zhu                                   *
 *                                                    *
 * Date:2006-09-28                                   *
 *                                                   *
 * Last Modified Date: 2006-09-28 10:44 AM           *
 *                                                   *
 * --------------------------------------------------*/
Create procedure Proc_Group_Total
as
declare @flag_Color varchar(20)
declare @Color varchar(20)
declare @qty int
declare @row_count int
declare @row_index int
declare @sum_qty int
declare @total_qty int
select @row_count=count(*) from tb_color
declare cursor_color cursor for
     select color,qty from tb_color
declare @color_table table(flag varchar(10),t_color varchar(20),t_qty int)
open cursor_color
     fetch next from cursor_color
            into @color,@qty
     set @flag_color=@color
set @row_index='0'
set @sum_qty='0'
set @total_qty='0'
 while @@fetch_status=0 and @row_index<@row_count
     begin
     if @flag_color<>@color
      begin
      insert into @color_table(flag,t_color,t_qty) values ('Sum',@flag_color,@sum_qty)
      set @flag_color=@color
      set @total_qty=@total_qty+@sum_qty
      set @sum_qty='0'
      end
     insert into @color_table(flag,t_color,t_qty) values ('-',@color,@qty)
     set @sum_qty=@sum_qty+@qty
       fetch next from cursor_color
              into @color,@qty
     set @row_index=@row_index+1
      if @row_index=@row_count
     begin
          insert into @color_table(flag,t_color,t_qty) values ('Sum',@flag_color,@sum_qty)
      set @flag_color=@color
      set @total_qty=@total_qty+@sum_qty
          insert into @color_table(flag,t_color,t_qty) values ('Total','-',@total_qty)
     end
     end
select * from @color_table
select * from tb_color
close cursor_color
deallocate cursor_color
执行Procedure
DECLARE @RC int
-- Set parameter values
EXEC @RC = [Study].[dbo].[Proc_Group_Total]
[F5]
Result :
Flag    Color    Qty
====================
-             Blue       10
-             Blue       11
-             Blue       12
-             Blue       13
-             Blue       14
Sum       Blue       60
-             Red        5
-             Red        6
-             Red        7
Sum       Red        18
Total       -             78
 

转载于:https://www.cnblogs.com/sesexxoo/archive/2006/09/28/6190381.html

Sql Server 中利用游标对table 的数据进行分组统计式输出…相关推荐

  1. SQL Server中采用BULK INSERT实现大数据量文本文件批量导入

    SQL语句: BULK   INSERT   dbo.table        FROM   'e:/test.tbl '        WITH                (           ...

  2. oracle和sql server中,取前10条数据语法的区别

    在sql server中,取数据中前10条语句,我们可以用top 10 这样语句,但是oracle就没有这个函数,接下来介绍它们之间的区别 1.sql server 取前10语句和随机10条的语法 - ...

  3. SQL Server中利用存储过程来高性能地进行分页

    分页查询的方法已经很多很多,在这里我也加入成为其中一员.       SQL Server中有一个Set Rowcount的的设置,它的意思是使命令的处理在响应指定的行数之后停止处理命令,利用这个特点 ...

  4. SQL SERVER中的游标

    游标的概念 游标是一种能从包含多个元组的集合中每次读取一个元组的机制.游标总是和一段SELECT语句关联,SELECT语句查询出的结果集就作为集合,游标能每次从该集合中读取出一个元组进行不同操作. 游 ...

  5. 在SQL Server中解析和旋转定界数据

    Because databases aren't always designed efficiently, data is sometimes stored in ways that make sor ...

  6. 在sql server中用正则表达式替换html标签,SQL Server中利用正则表达式替换字符串

    建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION ...

  7. 在SQL SERVER中查找用分隔符分隔的数据

    SELECT *FROM [DB_SCJC].[dbo].[tn_Manager]where CHARINDEX(',31,',','+JobID+',')>0 其中, CHARINDEX({1 ...

  8. 在SQL Server中分页结果的最佳方法是什么

    如果您还希望获得结果总数(在进行分页之前),那么在SQL Server 2000.2005.2008.2012中对结果进行分页的最佳方法是(性能明智的)? #1楼 最终, Microsoft SQL ...

  9. 硬盘的原理以及SQL Server如何利用硬盘原理减少IO

    简介 硬盘作为现在计算机内部最后的机械存储部件,速度相比较内存和Cache而言会慢好几个数量级.但所幸的是,硬盘的成本是远远低于内存的.因此硬盘作为永久存储器是比较合适的,所幸的是为了克服硬盘慢速带来 ...

最新文章

  1. 博士在读却连矩阵的秩都搞不清,我该如何毕业?|Reddit热议
  2. nodejs 获取get中携带的参数值
  3. Js实现异步刷新(原创)
  4. c语言降序多项式加法,数据结构算法(多项式加法)的C语言完美实现
  5. Packet Tracer 5.0实验(四) 利用三层交换机实现VLAN间路由
  6. HOG特征(Histogram of Gradient)总结
  7. Matlab滤波器设计
  8. 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
  9. lvuaagentinstbaseroot_桌面小助手UniAgent删除指南
  10. linux centos7 安装svn,linux centos7安装svn并配置同步更新web项目
  11. 华为改变策略,出击超低端手机市场
  12. 个人网站,有哪些虚拟主机值得购买?
  13. 厦门新车上牌经验分享
  14. Android开发之最新Android Studio推送代码到最新GitHub教程 | Android Studio绑定GitHub | AS令牌登录GitHub | 创建GitHub令牌
  15. gaussDB 安装使用
  16. PHPExcel导入导出常用方法总结
  17. java实现md5签名实现对外调用接口
  18. python时间差计算器时分秒_python 实现日期计算器
  19. 与某流氓网站的血泪交战史
  20. v-rep仿真之键盘控制机械臂末端移动

热门文章

  1. mysql 主从复制 博客园_mysql主从复制
  2. 代码同步工具_构建现代化的命令行工具
  3. 牛客网练习赛26B(简单的dp)
  4. IDEA中Maven项目中界面右边的Maven Projects窗口找不到不出来
  5. Spring Cloud 负载均衡
  6. 计算实际例子_【科普】机器学习的核心计算:距离+统计?
  7. 重启机器后挂载盘丢失
  8. mysqldump备份原理及注意事项
  9. treelistview 所有节点失去焦点_重大福利!中国外交部发布新规 关乎所有海外华人!...
  10. 为什么c++文件只能执行一次_numba从入门到精通(1)—为什么numba能够加速