PART |
일자 |
상담원명 |
LogIn |
LogOut |
인입호 |
발신호(Action List) |
기타(일반OB) |
호전환 |
총통화시간 |
콜 건수 |
통화시간 |
평균시간 |
콜 건수 |
통화시간 |
평균시간 |
콜 건수 |
통화시간 |
평균시간 |
콜 건수 |
통화시간 |
평균시간 |
정보 |
총계 |
|
|
|
124 |
01:34:49 |
00:00:46 |
9 |
00:22:43 |
00:02:31 |
0 |
00:00:00 |
00:00:00 |
0 |
133 |
01:57:32 |
00:00:53 |
정보 |
20060101 |
김지영 |
19:08:48 |
19:09:07 |
10 |
00:01:44 |
00:00:10 |
0 |
00:00:00 |
00:00:00 |
0 |
00:00:00 |
00:00:00 |
0 |
10 |
00:01:44 |
00:00:10 |
정보 |
20060101 |
조미경 |
10:59:24 |
22:00:00 |
124 |
01:24:26 |
00:00:41 |
9 |
00:22:43 |
00:02:31 |
0 |
00:00:00 |
00:00:00 |
0 |
133 |
01:47:09 |
00:00:48 |
정보
|
일계 |
|
|
|
124 |
01:34:49 |
00:00:46 |
9 |
00:22:43 |
00:02:31 |
0 |
00:00:00 |
00:00:00 |
0 |
133 |
01:57:32 |
00:00:53 |
이렇게 통계를 내는 건대요. 이번에 추가사항이 생겼네요.
일자별, 상담원별, 월별 검색조건을 추가해서 일자별 합계, 일평균을(총계는 빠지고 일계가 보이는 부분에 추가해야대요) 내고
상담원별 합계, 일평균이 보이고 월별도 같은 방법으로 해서 3개의 정렬조건이 생겨야 대거든요.
그런데 쿼리를 아무리 봐도 현재 화면의 총계와 일계를 구해오는게 이해가 안가서요. 약간이라도 좋으니 조언 부탁드립니다. 쿼리는 이래요
select
decode(ta.seq,'3','9999999','1',ta.stat_date||'1',ta.stat_date||'0') ,
decode(ta.seq,'1',ta.stat_date,'2','일계','총계') ,
decode(substr(max(ta.group_code),1,2),'21','정보','23','CS','22','음성인식','24','캠페인') ,
decode(ta.seq,'1',ta.agent_name,' ') ,
decode(ta.seq,'1',ta.login_tme,' ') ,
decode(ta.seq,'1',ta.logout_tme,' '),
max(ta.total_time),
max(ta.ib_cnt)call1,
max(ta.ib_call_tme),
decode(max(ta.ib_cnt) , 0, 0 ,round(max(ta.ib_call_tme)/max(ta.ib_cnt)))avg1,
max(ta.al_cnt)call2,
max(ta.al_call_tme),
decode( max(ta.al_cnt), 0 ,0 ,round(max(ta.al_call_tme)/max(ta.al_cnt)))avg2,
max(ta.ob_cnt)call3,
max(ta.ob_call_tme),
decode( max(ta.ob_cnt), 0 ,0 ,round(max(ta.ob_call_tme)/max(ta.ob_cnt)))avg3,
max(ta.call_trsf),
decode((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)),0,0, ((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)))) tot_cnt,
decode((max(ta.ib_call_tme)+max(ta.al_call_tme)+max(ta.ob_call_tme)),0,0,((max(ta.ib_call_tme)+max(ta.al_call_tme)+max(ta.ob_call_tme)))) tot_call_tme,
decode(decode((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)),0,0, ((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)))),0,0,
round(decode((max(ta.ib_call_tme)+max(ta.al_call_tme)+max(ta.ob_call_tme)),0,0,((max(ta.ib_call_tme)+max(ta.al_call_tme)+max(ta.ob_call_tme))))/
decode((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)),0,0, ((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)))))) tot_avg,
max(ta.wait_time),
decode((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)),0,0, round( max(ta.wait_time)/(max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)))) avg_wait,
max(ta.work_time),
decode((max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)),0,0, round( max(ta.work_time)/(max(ta.ib_cnt)+max(ta.al_cnt)+max(ta.ob_cnt)))) avg_work,
max(ta.dish_time),
max(ta.educ_time),
max(ta.rest_time),
max(ta.agent_id)
from
(
select
d.seq, a.stat_date, a.agent_id, b.agent_name, c.group_code, to_char(a.login_tme,'HH24:MI:SS') login_tme, to_char(a.logout_tme,'HH24:MI:SS') logout_tme, a.total_time,
e.ib_cnt ,e.al_cnt, e.ob_cnt, e.ib_call_time ib_call_tme, e.al_call_time al_call_tme,e.ob_call_time ob_call_tme,
e.call_trsf, a.work_time, a.wait_time, a.rest_time , a.dish_time, a.educ_time
from
agent_call a,
agent b,
(select distinct agent_id, group_code from agent_group where group_type = '01' and group_code like '2101%' ) c,
(select to_char(rownum) seq from agent where rownum <= 3) d ,
(select agent_id,service_dte, sum(decode(call_type,1,1,0)) ib_cnt ,sum(decode(call_type,2,1,0)) al_cnt, sum(decode(call_type,3,1,0)) ob_cnt,sum(decode(call_flag,2,1,0)) call_trsf ,
sum(nvl(decode(call_type,1,(call_end_tme - call_str_tme)*3600*24,0),0)) ib_call_time,
sum(nvl(decode(call_type,2,(call_end_tme - call_str_tme)*3600*24,0),0)) al_call_time,
sum(nvl(decode(call_type,3,(call_end_tme - call_str_tme)*3600*24,0),0)) ob_call_time
from CALL_HISTORY
where service_dte between '20060101' and '20060101'
group by service_dte, agent_id
order by agent_id ) e
where
a.agent_id = b.agent_id
and a.agent_id = c.agent_id
and a.agent_id = e.agent_id
and a.stat_date between '20060101' and '20060101'
) ta
group by
decode(ta.seq,'3','9999999','1',ta.stat_date||'1',ta.stat_date||'0'),
decode(ta.seq,'1',ta.stat_date,'2','일계','총계'),
decode(ta.seq,'1',ta.agent_name,' '),
decode(ta.seq,'1',ta.login_tme,' ') ,
decode(ta.seq,'1',ta.logout_tme,' ')
order by 1 desc ,2, 3
질문을 많이 안해봐서 이렇게 올려도 되는건지 모르겠네요. 잘못된부분 너그럽게 이해해 주세요^^
|