sql实现n日均线
来源:互联网 发布:网络传播理论与实践 编辑:程序博客网 时间:2024/04/28 20:32
if COL_LENGTH('book1','n日均线')isnotnull/*判断表中是否存在列名为n日
均线的列,存在就删除,不存在就创建,book表示数据表名*/
begin
alter table book1 /*修改表*/
drop column n日均线/*删除列*/
end
alter table book1 /*修改表*/
add n日均线decimal(18,2)null/*增加列*/
GO
/*********************************************创建存储过程*****************************************************/
CREATE PROCEDUREnri/*存储过程名称为nri*/
@n int,@resfloatoutput/*输入参数n表示n日均线,res为n日均线的值*/
as
declare @low int /*定义循环变量low*/
declare @high int /*定义循环变量@high*/
declare @max int /*定义变量max表示book1表中数据的总量*/
declare @nsum float /*定义变量nsum表示某天n日收盘的总和*/
set @high=@n /*high初始为n*/
select @max=count(*)from book1 /*查询book数据表中数据的总行量*/
/*******************************创建游标************************************************/
declare test cursor SCROLL FOR /*定义游标名为test*/
select 时间,收盘from book1 /*取得要查询的结果集,游标指向此结果集*/
open test /*打开游标*/
declare @收盘float /*定义局部变量收盘,数据类型要跟表中的列保持一致,接收book1表中“收盘”列的数据*/
declare @时间nvarchar(255) /*定义局部变量时间,数据类型要跟表中的列保持一致,接收book1表中“时间”列的数据*/
/****************************外循环开始*************************************************/
while @high<=@max/*所求某日的均线值该日是否不大于表中数据的总行量*/
begin
set @nsum=0/*某天n日收盘的总和初始值为*/
set @low=@high-@n+1/*所求某天n日均线这n天中的第一日始终比最后一日少(n-1)日*/
/******************************内循环开始*****************************************************/
while @low<=@high/*low是否不大于high,low每次循环+1表示下一日,直到等于所求n日中最后一日*/
begin
fetch ABSOLUTE @lowfromtestinto @时间,@收盘/*游标根据low值定位对应第几行(第几日)数据,
并把数据赋值给局部变量@时间,@收盘*/
set @nsum=@nsum+@收盘/*n日的收盘值相加*/
set @res=@nsum/@n /*求得某日的n日均线*/
set @low=@low+1 /*low+1表示下一日*/
end
update book1 set n日均线=@res where 时间=@时间/*更新日均线的值,把求得的日均线的值更新到对应日期*/
set @high=@high+1 /*求下一日的n日均线*/
end
CLOSE test /*关闭游标*/
DEALLOCATE test /*释放游标资源*/
/*新建查询*/
DECLARE @rijun float /*声明变量@rijun接收存储过程的输出参数*/
EXEC nri @n=6,@res=@rijunOUTPUT/*执行存储过程nri,输入参数n为(6日均线)*/
/*输出参数res传递给变量@rijun*/
/*新建查询删除存储过程*/
drop proc nri
- sql实现n日均线
- 画K线图、画N日均线 python3
- 画K线图、画N日均线 python3
- 什么是60日均线
- 五日十日二十日及三十日均线的作用
- 用python计算20日均线数值
- 油价震荡于5日均线
- 股票中5日均线连续金叉10日均线选股法
- 日均5000万订单点餐系统中间件选型和关键技术实现方案
- SQL N
- 让数据库中始终保持N条记录.sql语句实现
- sql获取第n行——游标实现
- 在SQL Server中实现 Limit m, n 的功能
- Sql 子查询 实现分组 显示 TOP N
- 在SQL Server中实现 Limit m, n 的功能
- 分组Top N问题(三) - sql及Hive实现
- 在SQL Server中实现 Limit m, n 的功能
- SQL Server--实现 Limit m, n 的功能
- 计算总页数公式
- Cocos2d-x中判断点击命中的几种方法
- hive的安装(元数据库: MySQL)
- ios面试题整理
- iphone游戏开发之cocos2d
- sql实现n日均线
- 点击图像的某一部分,跳到一个连接或执行一个事件
- js获取时间(年月日时分秒)
- js正则验证
- 关于析构函数出错
- java集合框架实现略解
- 福师大59岁保安大叔参加校十佳歌手,顺利通过初试
- Apple Push Notification Services in iOS 6 Tutorial: Part 1/2
- Android JNI --函数调用大全