现有表BD_WORK_INFO如下:
CREATE_BY QUESTION_TYPE CREATE_DATE FILL_TIME(耗时)
A T102 (DATE 类型) 0.14
B T106 (DATE 类型) 0.15
C T103 (DATE 类型) 0.17
A T106 (DATE 类型) 0.18
B T102 (DATE 类型) 0.19
D T109 (DATE 类型) 0.33
(表大致如上,表很大,数据很多,但是只需要用到这几个。创建者一共有五十多个,问题类型一共有11个,但是只需要其中的7个。现在要做的就是把这个表一些数据取出做计算后转存在另外一张表,做一个报表的后台数据表,要求如下:)
姓名 T106 耗时 T102 耗时 T103 耗时
(其中,T106需要以自然周统计,T102需要以自然月统计。列T102,T106,T103的内容是QUESTION_TYPE 中出现的次数,也就是COUNT()函数,耗时是出现同一QUESTION_TYPE 的总的耗时数,比如说创建人A在一周内出现了4次T106问题,那耗时就是这四次的总耗时。求个存储过程,同时需要一个视图,因为前台我还做不出来。。。)
我折磨一周了。。后天BOSS就要
CREATE_BY QUESTION_TYPE CREATE_DATE FILL_TIME(耗时)
A T102 (DATE 类型) 0.14
B T106 (DATE 类型) 0.15
C T103 (DATE 类型) 0.17
A T106 (DATE 类型) 0.18
B T102 (DATE 类型) 0.19
D T109 (DATE 类型) 0.33
(表大致如上,表很大,数据很多,但是只需要用到这几个。创建者一共有五十多个,问题类型一共有11个,但是只需要其中的7个。现在要做的就是把这个表一些数据取出做计算后转存在另外一张表,做一个报表的后台数据表,要求如下:)
姓名 T106 耗时 T102 耗时 T103 耗时
(其中,T106需要以自然周统计,T102需要以自然月统计。列T102,T106,T103的内容是QUESTION_TYPE 中出现的次数,也就是COUNT()函数,耗时是出现同一QUESTION_TYPE 的总的耗时数,比如说创建人A在一周内出现了4次T106问题,那耗时就是这四次的总耗时。求个存储过程,同时需要一个视图,因为前台我还做不出来。。。)
我折磨一周了。。后天BOSS就要
----------------
1)--view
create or replace view bd_work_info_tj as select create_by ,
case when question_type='T102' then fill_time end T102,
case when question_type='T106' then fill_time end T106,
case when question_type='T103' then fill_time end T103,
create_date,
to_char(create_date,'WW') week,
to_char(create_date,'MM') month,
to_char(create_date,'YYYY') years
from bd_work_info;
2)
select distinct create_by,
count(week) over(partition by create_by,week) COUNTT102,--出现次数
sum(T102) over(partition by create_by,week) SUMT102,--耗时
count(month) over(partition by create_by,month) COUNTT106,
sum(T106) over(partition by create_by,month) SUMT106,
count(T103) over(partition by create_by) COUNTT103,
sum(T103) over(partition by create_by) SUMT103
from bd_work_info_tj order by create_by
select distinct create_by,
count(week) over(partition by create_by,week) COUNTT102,--出现次数
sum(T102) over(partition by create_by,week) SUMT102,--耗时
count(month) over(partition by create_by,month) COUNTT106,
sum(T106) over(partition by create_by,month) SUMT106,
count(T103) over(partition by create_by) COUNTT103,
sum(T103) over(partition by create_by) SUMT103
from bd_work_info_tj order by create_by
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15483376/viewspace-721896/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15483376/viewspace-721896/