如何写一个适合SQL查询语句的游标
selecta1.编码,avg(a1.动态),avg(最新价)fromzjmx3a1,(select编码,max(日期)as日期,max(排序)as高序,max(排序)-...
select a1.编码,avg(a1.动态),avg(最新价) from zjmx3 a1,(select 编码,max(日期) as 日期,max(排序) as 高序, max(排序)-4 as 五序 from biao3 where 排序>5 group by 编码 ) as b1 where a1.编码=b1.编码 and 排序 between 五序 and 高序 group by a1.编码
以上查询语句可以精简为:
select a1.编码,avg(a1.动态),avg(a1.最新价) into fenxi3 from zjmx3 a1,biao2 b1 where a1.编码=b1.编码 and 排序 between b1.五序 and b1.高序 group by a1. 编码
目的就是利用一个游标将查询的数据一行一行的插入到一个 fenxi3 表中,请高手指点一二!
谢谢指点!
如果查询语句为以下情况该如何更改 游标 或更改 优先实现 语句
select a1.编码, a. 五日均量, a. 五日均价d. 七日均量, d.七日均价 into fenxi3 from
(select a1.编码,avg(a1. 动态) as 五日均量 ,avg(最新价) as 五日均价 from zjmx3 a1,fd b1 where a1. 编码=b1. 编码and 排序between b1.五序 and b1.高序 group by a1. 编码) a
join
(select b1.代码,avg(a1. 动态) as 七日均量 ,avg(最新价) as 七日均价 from zjmx3 a1,fd b1 where a1. 编码=b1. 编码and 排序 between 七序 and 高序 group by b1. 编码) as d
on a. 编码=d. 编码 展开
以上查询语句可以精简为:
select a1.编码,avg(a1.动态),avg(a1.最新价) into fenxi3 from zjmx3 a1,biao2 b1 where a1.编码=b1.编码 and 排序 between b1.五序 and b1.高序 group by a1. 编码
目的就是利用一个游标将查询的数据一行一行的插入到一个 fenxi3 表中,请高手指点一二!
谢谢指点!
如果查询语句为以下情况该如何更改 游标 或更改 优先实现 语句
select a1.编码, a. 五日均量, a. 五日均价d. 七日均量, d.七日均价 into fenxi3 from
(select a1.编码,avg(a1. 动态) as 五日均量 ,avg(最新价) as 五日均价 from zjmx3 a1,fd b1 where a1. 编码=b1. 编码and 排序between b1.五序 and b1.高序 group by a1. 编码) a
join
(select b1.代码,avg(a1. 动态) as 七日均量 ,avg(最新价) as 七日均价 from zjmx3 a1,fd b1 where a1. 编码=b1. 编码and 排序 between 七序 and 高序 group by b1. 编码) as d
on a. 编码=d. 编码 展开
1个回答
展开全部
优先实现:
Insert into fenxi3
select a1.编码,avg(a1.动态),avg(a1.最新价) from zjmx3 a1,biao2 b1 where a1.编码=b1.编码 and 排序 between b1.五序 and b1.高序 group by a1. 编码
游标实现:
DECLARE CR_SOHINMT CURSOR FAST_FORWARD FOR --REV.601
select a1.编码,avg(a1.动态),avg(a1.最新价) from zjmx3 a1,biao2 b1 where a1.编码=b1.编码 and 排序 between b1.五序 and b1.高序 group by a1. 编码
OPEN CR_SOHINMT
FETCH NEXT FROM CR_SOHINMT INTO @XXX,。。。。。 @XXXXX ---将取得数据存放到变量中
WHILE (@@fetch_status <> -1)
BEGIN
Insert into fenxi3 Vale(@XXX,。。。。。 @XXX,。。。。。 )
FETCH NEXT FROM CR_SOHINMT INTO @XXX,。。。。。 @XXXXX
END
Insert into fenxi3
select a1.编码,avg(a1.动态),avg(a1.最新价) from zjmx3 a1,biao2 b1 where a1.编码=b1.编码 and 排序 between b1.五序 and b1.高序 group by a1. 编码
游标实现:
DECLARE CR_SOHINMT CURSOR FAST_FORWARD FOR --REV.601
select a1.编码,avg(a1.动态),avg(a1.最新价) from zjmx3 a1,biao2 b1 where a1.编码=b1.编码 and 排序 between b1.五序 and b1.高序 group by a1. 编码
OPEN CR_SOHINMT
FETCH NEXT FROM CR_SOHINMT INTO @XXX,。。。。。 @XXXXX ---将取得数据存放到变量中
WHILE (@@fetch_status <> -1)
BEGIN
Insert into fenxi3 Vale(@XXX,。。。。。 @XXX,。。。。。 )
FETCH NEXT FROM CR_SOHINMT INTO @XXX,。。。。。 @XXXXX
END
更多追问追答
追问
谢谢!由于继续追问的问题字数超过长度,所以将问题放在补充问题中了,无论能否帮我解答出来,我都非常感谢你的指点。优先实现 与 游标实现 均有好的题案我会再追加20分的。
追答
一样实现。只是
DECLARE CR_SOHINMT CURSOR FAST_FORWARD FOR下面的Sql语句变更而已。
下面的变量必须与选择列一致。一样写出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询