1、1. 在数据库中有一张行情表,该表有三列:股票名称,日期,交易量,收盘价。我们要求计算某只股票5日移动平均价和5日交易量加权移动平均价。(请附上建表语句和查询语句的SQL)其中data.csv直接进行导入,创建2个字段ma5和volume5分别作为5日移动平均价和5日交易量加权移动平均价。use sql_mago if COL_LENGTH(matable,ma5)is not nullbeginalter table matabledrop column ma5endalter table matableadd ma5 decimal(18,2)nullif COL_LENGTH(matab
2、le,volume5)is not nullbeginalter table matable drop column volume5endalter table matableadd volume5 decimal(28,4)nullgodeclare i int=1 /*定义循环变量i*/ declare j int=1 /*定义循环变量j*/ declare n int /*定义变量n表示matable表中数据的总量*/ declare close_y float=0 /*定义变量close_y表示某天前日这天的收盘*/ declare close_sum float=0 /*定义变量cl
3、ose_sum表示某天前n日收盘的总和*/ declare close_avg float /*定义变量close_avg表示某天的n日均线值*/declare volume_y float=0 /*定义变量volume_y表示某天前日这天的收盘*/ declare volume_sum float=0 /*定义变量volume_sum表示某天前n日收盘的总和*/declare volume_avg float /*定义变量volume_avg表示某天的n日均线值*/select n=count(*)from matable /*查询matable数据表中数据的总量*/declare ma1
4、cursor scrollfor select dt,close,volume from matableopen ma1declare close floatdeclare volume floatdeclare dt varchar(50)while i5beginfetch absolute i from ma1 into dt,close,volumeset close_sum=close_sum+closeset volume_sum=volume_sum+volumeset i=i+1endwhile i=nbegin fetch absolute i from ma1 into d
5、t,close,volumeset close_sum=close_sum-close_y+closeset close_avg=close_sum/5set volume_sum=volume_sum-volume_y+volumeset volume_avg=volume_sum/5update matable set ma5=close_avg where dt=dtupdate matable set volume5=volume_avg where dt=dtfetch absolute j from ma1 into dt,close,volumeset close_y=closeset volume_y=volumeset i=i+1set j=j+1endclose ma1select * from matable与excel里计算结果进行对比