下面是我写的一个存储过程,一个别名作为了变量,需要用到动态SQL,但我怎么写都不对,无法保存,请赐教。
CREATE PROCEDURE chaxun @a charASexec(''select m.daima as '代码',m.mingcheng as '名称',m.xianjia as '现价',m.zhangfu as '涨幅',cast((((m.xianjia)/(x.zg)-1)*100) as decimal (18,2)) as '5日跌幅',cast((((m.xianjia)/(s.zg)-1)*100) as decimal (18,2)) as '25日跌幅',cast((((m.xianjia)/(x.zd)-1)*100) as decimal (18,2)) as '5日涨幅',cast((((m.xianjia)/(s.zd)-1)*100) as decimal (18,2)) as '25日涨幅',cast(((x.zg-m.xianjia)/(x.zg-x.zd)*100) as decimal (18,2)) as '5日威廉指标',cast(((s.zg-m.xianjia)/(s.zg-s.zd)*100) as decimal (18,2)) as '25日威廉指标',cast((x.zf) as decimal (18,2)) as '5日振幅',cast((s.zf) as decimal (18,2)) as '25日振幅',cast((((m.xianjia)/(x.ax)-1)*100) as decimal (18,2)) as '5日均线',cast((((m.xianjia)/(s.ax)-1)*100) as decimal (18,2)) as '25日均线',cast((x.zz) as decimal (18,2)) as '5日量能',cast((s.zz) as decimal (18,2)) as '25日量能',cast(((x.qj-1)*100) as decimal (18,2)) as '震荡区间',cast((cast(m.zongliang as decimal)/cast(n.zongliang as decimal)-1) as decimal (18,2)) as '当日增量' from (select b.* from(select a.* , px = (select count(1) from meirishuju where daima = a.daima and date > a.date) + 1 from meirishuju a ) bwhere b.px=1) m,(select b.* from(select a.* , px = (select count(1) from meirishuju where daima = a.daima and date > a.date) + 1 from meirishuju a ) bwhere b.px=2) n,(select b.daima,max(zuigao) zg,min(zuidi) zd,avg(zhengfu) zf,max(zuigao)/min(zuidi) qj,avg(xianjia) ax,sum(zhangfu*zongjine)/avg(zongjine) zz from (select a.* , px = (select count(1) from meirishuju where daima = a.daima and date > a.date) + 1 from meirishuju a ) bwhere b.px between 1 and 5group by b.daima ) x,(select b.daima,max(zuigao) zg,min(zuidi) zd,avg(zhengfu) zf,max(zuigao)/min(zuidi) qj,avg(xianjia) ax,sum(zhangfu*zongjine)/avg(zongjine) zz from (select a.* , px = (select count(1) from meirishuju where daima = a.daima and date > a.date) + 1 from meirishuju a ) bwhere b.px between 1 and 25group by b.daima ) swhere m.daima=n.daima and m.daima=x.daima and m.daima=s.daimaand m.daima in (select daima from daima where biaoji in(2))and n.zongliang <>0order by '+@a+' desc
'')GO
2 回答
- 2 回答
- 0 关注
- 494 浏览
添加回答
举报
0/150
提交
取消