ITPub博客

首页 > 应用开发 > IT综合 > 公布计算过程,大家都可以做并及时将结果发布--zsbc

公布计算过程,大家都可以做并及时将结果发布--zsbc

原创 IT综合 作者:jlandzpa 时间:2019-03-08 09:42:06 0 删除 编辑
公布计算过程,大家都可以做并及时将结果发布


--计算过程

--创建几个表

--存最终结果
create table zsbc2008_3 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
净值 number,
收入率 number,
获胜次数 number,
胜率 number,
净值除下注总金额 number,
获胜次数除总开盘数 number,
参与次数除总开盘数 number,
总开盘数 number
);

--存临时结果
create table zsbc_temp1 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
获胜次数 number
);

--存临时结果
create table zsbc_temp2 (
用户名 varchar2(30),
参与次数 number,
下注总金额 number,
收入金额 number,
获胜次数 number
);

--存临时结果
create table szzsbc_temp
(日期 varchar2(8),
用户 varchar2(30),
下注 number,
结果 varchar2(10),
收入 number,
纯收入 number,
原始结果 varchar2(200)
);

1.把上次的统计结果copy到excel文件里,再通过plsql developer,copy到表zsbc2008_3里.
2.将新的nba结果一起copy到一个文件,利用UEDIT的替换功能将所有的原始记录转换成insert语句,格式如下:
insert into szzsbc_temp(原始结果) values ('shiguibao 下注 100PUB币--失败 ');
--替换用的
insert into szzsbc_temp(原始结果) values ('

3.将2的全部insert语句copy到sqlplus里,insert到szzsbc_temp.

4.执行以下语句,对szzsbc_temp做简单的解析

update szzsbc_temp set 原始结果=rtrim(原始结果);
commit;
update szzsbc_temp
set 日期= '200912',
用户=substr(原始结果,1,instr(原始结果,' ',1) - 1),
下注=substr(原始结果,instr(原始结果,'下注',1) + 3,instr(原始结果,'PUB币',1,1) - instr(原始结果,'下注',1,1) - 3 ),
结果=decode(sign(instr(原始结果,'胜出')),1,'成功','失败');
commit;
update szzsbc_temp
set 收入=substr(原始结果,instr(原始结果,'收入',1) + 3,instr(原始结果,'PUB币',1,2) - instr(原始结果,'收入',1,1) - 3 )
where instr(原始结果,'收入') > 0;
commit;
update szzsbc_temp set 收入=0
where instr(原始结果,'收入') = 0;
commit;
update szzsbc_temp set 纯收入= 收入 - 下注;
commit;

5.对szzsbc_temp做简单计算,结果存到zsbc_temp1

truncate table zsbc_temp1;
insert into zsbc_temp1
select 用户,count(*),sum(下注) ,sum(收入),sum(decode(结果,'成功',1,0)) from szzsbc_temp
group by 用户;
commit;

6.处理以前没有下注记录的用户

insert into zsbc2008_3(用户名,参与次数,下注总金额,收入金额,获胜次数)
select 用户名,参与次数,下注总金额,收入金额,获胜次数 from zsbc_temp1 t
where t.用户名 not in (select 用户名 from zsbc2008_3 );
commit;

7,处理有下注记录的用户

truncate table zsbc_temp2;

insert into zsbc_temp2
select t.用户名,t.参与次数 + n.参与次数,t.下注总金额 +n.下注总金额 ,t.收入金额 + n.收入金额,t.获胜次数+n.获胜次数
from zsbc_temp1 t,zsbc2008_3 n where t.用户名 = n.用户名;
commit;

delete from zsbc2008_3 where 用户名 in (select 用户名 from zsbc_temp2 );
commit;
insert into zsbc2008_3(用户名,参与次数,下注总金额,收入金额,获胜次数)
select * from zsbc_temp2 ;
commit;

8.设置总开盘数
update zsbc2008_3 set 总开盘数 = 184;
commit;

9.计算余下的字段
update zsbc2008_3
set 净值=收入金额 - 下注总金额,
收入率 = round((收入金额 - 下注总金额) / 参与次数,4),
胜率 = round(获胜次数 / 参与次数,4),
净值除下注总金额 = round((收入金额 - 下注总金额) / 下注总金额,4),
获胜次数除总开盘数 = round(获胜次数 / 总开盘数,4),
参与次数除总开盘数 = round(参与次数 / 总开盘数,4);

commit;

10. 在toad里执行以下语句,并将结果存成html文件.

select rownum, a.* from
(
select * from zsbc2008_3 where 参与次数除总开盘数 >= 0.5 order by 8 desc
) a;[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/936/viewspace-1014545/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2001-10-12

  • 博文量
    240
  • 访问量
    215164