代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
存储过程中的循环使用
作者:
Dezai.CN
/ 发布于
2011/11/17
/
706
<div><font color="#993300">/****** 对象: 存储过程 dbo.get_zb_count 脚本日期: 2007-05-18 15:34:33 ******/ CREATE PROCEDURE get_zb_count_3 @J_JID varchar(50), @S_Area varchar(6000), @K_ID varchar(50), @zb_count </font><font color="#ff0000">int</font><font color="#993300"> output AS begin declare @i </font><font color="#ff0000">int</font><font color="#993300"> ---存放循环变量 declare @count </font><font color="#ff0000">int</font><font color="#993300"> ---存放表的数据记录数 declare @Kh_ID varchar(50)-----存放考核子指标值 declare @total </font><font color="#ff0000">int</font><font color="#993300"> ------存放count的循环累计 create table #KhStyle(IntID </font><font color="#ff0000">int</font><font color="#993300"> identity(1,1), StyleID varchar(50)) ---创建临时表 insert into #KhStyle(StyleID) </font><font color="#0000ff">select</font><font color="#993300"> K_ID from T_Kaoh where J_JID=@J_JID and K_FID=@K_ID --------把查询的子指标记录插入到临时表 </font><font color="#0000ff">select</font><font color="#993300"> @count = count(1) from #KhStyle ---查询当前临时表的子指标记录 </font><font color="#0000ff">if</font><font color="#993300"> (@count>0) -------------------------------------------------1---------------------------------- begin </font><font color="#0000ff">set</font><font color="#993300"> @i = 1 -------变量初始化 </font><font color="#0000ff">set</font><font color="#993300"> @total = 0 ---累计初始化 </font><font color="#0000ff">while</font><font color="#993300"> (@i <= @count) -------开始循环 --------------------------------------------2-------------------------- begin </font><font color="#0000ff">select</font><font color="#993300"> @Kh_ID = StyleID from #KhStyle where intID = @i --循环把临时表的子指标值 给于变量 @Kh_ID </font><font color="#0000ff">select</font><font color="#993300"> @zb_count=count(*) from v_kh_jg where J_ID=@J_JID and K_ID=@Kh_ID and S_Area in (</font><font color="#0000ff">select</font><font color="#993300"> * from GetTB(@S_Area)) -----当前子指标所属企业数 </font><font color="#0000ff">if</font><font color="#993300"> @zb_count = 0 </font><font color="#0000ff">select</font><font color="#993300"> @zb_count = 1 ---如果没有企业则为1 </font><font color="#0000ff">select</font><font color="#993300"> @total= @zb_count +@total ---累计 </font><font color="#0000ff">select</font><font color="#993300"> @i = @i +1 --循环递增 </font><font color="#0000ff">end</font><font color="#993300"> -------------------------------------------2--------------------------- </font><font color="#0000ff">set</font><font color="#993300"> @zb_count=@total </font><font color="#0000ff">end</font><font color="#993300"> ---------------------------------------------1--------------------------------- else </font><font color="#0000ff">set</font><font color="#993300"> @zb_count=0 drop table #KhStyle---删除临时表 </font><font color="#0000ff">end</font><font color="#993300"> GO </font>说明:我这里用到了临时表的功能,通过这个存储过程至少能学到三点知识 1、变量是如何定义的 <strong>以下为程序代码:</strong> <table border="0" cellspacing="1" cellpadding="4" width="100%" bgcolor="#efefef"> <tbody> <tr> <td bgcolor="#fafafa" width="95%"><font color="#993300"> declare @intID <font color="#ff0000">int</font> declare @varname varchar(100) </font> </td> </tr> </tbody> </table> 2、临时表的使用 <strong>以下为程序代码:</strong> <table border="0" cellspacing="1" cellpadding="4" width="100%" bgcolor="#efefef"> <tbody> <tr> <td bgcolor="#fafafa" width="95%"><font color="#993300"> Create Table #StyleTab(intID <font color="#ff0000">int</font> identity(1,1),StyleID varchar(50))----创建临时表 请注意格式:#表名(字段名称 类型,字段名称 类型) 比较有用的一个字段就是自动增长的标识性字段的定义 intID <font color="#ff0000">int</font> identity(1,1) Drop Table #StyleTab----删除临时表 </font> </td> </tr> </tbody> </table> 3、循环的用法 <strong>以下为程序代码:</strong> <table border="0" cellspacing="1" cellpadding="4" width="100%" bgcolor="#efefef"> <tbody> <tr> <td bgcolor="#fafafa" width="95%"><font color="#993300"> 一般i通常作为变量 <font color="#0000ff">while</font>(i<=5) begin -----代码 <font color="#0000ff">end</font> </font></td> </tr> </tbody> </table> </div>
试试其它关键字
存储过程
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3