序号 字段名称 类型 字段描述
1 FDate DATE 日期
3 FZqdm Varchar2(10) 证券代码
4 FSzsh Varchar2(1) 深圳上海
5 FJyxwh Varchar2(10) 交易席位号
6 FBje double 买金额
8 FBsl double 买数量
10 Fbyj double 买佣金
12 FBjsf double 买经手费
14 FByhs double 买印花税
18 FBghf double 买过户费
23 Fbsfje double 买实付金额SQL需求:
符合“当日买入平均价相比5日前买入平均价高5%或低5%”的股票,这些股票5日总成交金额占这5日全部成交股票的比例。
说明:
买入平均价= FBje/FBsl
日期:FDate
每日成交金额:FBje
全部股票成交:所有股票的FBje合计
解决方案 »
- 在导入dmp文件到Oracle数据库中的时候,日志文件中出现错误
- 复合索引怎么用?
- 装好的Oracle10G,运行Enterprise Manager Database Control,找不到服务器,无法连接。
- liusong_china进。。。问题请教···关于那天你给写的sql
- oracle表中主关键字数据库系统自动产生怎么设置?
- 谁帮我修改下这个存储过程~
- 小白问关联查询和删除某些字符后再进行匹配的问题
- 请问有谁知道Oracle数据库的登录用户名和密码分别是什么啊?以后能否不用登录信息啊?
- 可不可以给我讲解一下用户管理中代理用户的概念,谢谢。
- oracle 问题...急....请教高手
- 求 一个按照从大范围到小范围,级别筛选纪录的sql写法,急~~在线等!!!!
- 如何取另外表的字段?谢谢
SELECT bbb.*
FROM (SELECT aa.fzqdm
FROM (SELECT TRUNC (fdate), fzqdm,
sum(fbje) / SUM (fbsl) avg_price,
LAG (sum(fbje) / SUM (fbsl), 1, 0) OVER (PARTITION BY fzqdm ORDER BY TRUNC
(fdate))
pre_5_avg,
ROW_NUMBER () OVER (PARTITION BY fzqdm ORDER BY TRUNC
(fdate))
rn
FROM a
WHERE TRUNC (fdate) = TRUNC (SYSDATE)
OR TRUNC (fdate) = TRUNC (SYSDATE - 5)) aa
WHERE aa.rn = 2
AND DECODE (aa.pre_5_avg,
0, 5,
ABS (100 * (aa.avg_price - aa.pre_5_avg) / aa.pre_5_avg)
) >= 5) aaa,
(SELECT fzqdm, SUM (fbje) sum_fbje,
ratio_to_report (SUM (fbje)) OVER () ratio
FROM a) bbb
WHERE aaa.fzqdm = bbb.fzqdm
这个语句只是基于理想状态下的数据的,
其实关于日期还要做修改,因为真正的交易纪录天数不会是连续的五天的,所以要把起始日期和截止日期给算出来SELECT bbb.*
FROM (SELECT aa.fzqdm
FROM (SELECT TRUNC (fdate), fzqdm,
sum(fbje) / SUM (fbsl) avg_price,
LAG (sum(fbje) / SUM (fbsl), 1, 0) OVER (PARTITION BY fzqdm ORDER BY TRUNC
(fdate))
pre_5_avg,
ROW_NUMBER () OVER (PARTITION BY fzqdm ORDER BY TRUNC
(fdate) desc)
rn
FROM a
WHERE TRUNC (fdate) = TRUNC (SYSDATE)
OR TRUNC (fdate) = TRUNC (SYSDATE - 5)) aa
WHERE aa.rn = 1
AND DECODE (aa.pre_5_avg,
0, 5,
ABS (100 * (aa.avg_price - aa.pre_5_avg) / aa.pre_5_avg)
) >= 5) aaa,
(SELECT fzqdm, SUM (fbje) sum_fbje,
ratio_to_report (SUM (fbje)) OVER () ratio
FROM a
where fdate between trunc(sysdate-5) and trunc(sysdate)+0.99999) bbb
WHERE aaa.fzqdm = bbb.fzqdm